Create Version

This commit is contained in:
2024-07-28 17:35:44 +02:00
parent 28240395c8
commit 7d77464ba7
4 changed files with 207 additions and 15 deletions
+60 -1
View File
@@ -1,6 +1,7 @@
/* eslint-disable camelcase */
import {
createDirectus, rest, authentication, withToken, createItem,
readUser
readUser, createContentVersion, readContentVersions
} from '@directus/sdk'
import {signOut} from 'next-auth/react'
import {hasRestrictedChar} from './format.js'
@@ -67,3 +68,61 @@ export async function handleSubmit({
}
}
}
export async function createVersion({
accessToken,
userId,
collection,
id,
content,
countdownRef,
setSuccess,
setError,
setIsErrorAlertOpen,
setIsSuccessAlertOpen
}) {
try {
if (hasRestrictedChar(content)) {
throw new Error('Le texte ne doit pas contenir certains caractères spéciaux : <, >, ", .')
}
await handleUserStatus(accessToken, userId)
const versions = await directusClient.request(
withToken(
accessToken,
readContentVersions()
)
)
const versionsCount = versions.length + 1
const date = Date.now()
const name = `v${versionsCount}-${date}`
const key = `${id}-${date}`
await directusClient.request(
withToken(
accessToken,
createContentVersion({
key,
name,
item: id,
user_created: userId,
collection,
})
)
)
setSuccess(`Version créée avec succès : ${name}`)
setIsSuccessAlertOpen(true)
} catch (error) {
if (error?.errors[0]?.message === 'Token expired.') {
countdownRef.current.startCountdown()
} else {
console.log(error?.errors[0]?.message)
setError(error?.errors[0]?.message)
setIsErrorAlertOpen(true)
}
}
}