Create Version
This commit is contained in:
+60
-1
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user