import { createDirectus, rest, authentication, withToken, createItem } from '@directus/sdk' import {hasRestrictedChar} from './format.js' const apiUrl = process.env.DIRECTUS_API_URL || process.env.NEXT_PUBLIC_DIRECTUS_API_URL export const directusClient = createDirectus(apiUrl) .with(authentication('cookie', {credentials: 'include', autoRefresh: true})) .with(rest()) export async function handleSubmit({ accessToken, content, collection, requestObject, setError, setSuccess, setIsErrorAlertOpen, setIsSuccessAlertOpen, countdownRef, }) { try { if (hasRestrictedChar(content)) { setError('Le texte ne doit pas contenir certains caractères spéciaux : <, >, ", .') setIsErrorAlertOpen(true) return } await directusClient.request( withToken( accessToken, createItem(collection, requestObject) ) ) setSuccess('Envoyé avec succès. En attente de validation.') 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) } } }