diff options
Diffstat (limited to 'src/lib/api')
| -rw-r--r-- | src/lib/api/ChangeDescription.tsx | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/lib/api/ChangeDescription.tsx b/src/lib/api/ChangeDescription.tsx new file mode 100644 index 0000000..e0b760a --- /dev/null +++ b/src/lib/api/ChangeDescription.tsx @@ -0,0 +1,45 @@ +const API_URL = process.env.NEXT_PUBLIC_API_URL; + +export const changeDescription = async (description: string) => { + try { + const res = await fetch(`${API_URL}/api/users/description`, { + method: 'PATCH', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ description }), + credentials: 'include', + }); + + if (!res.ok) { + let errorData: any = null; + + try { + errorData = await res.json(); + } catch {} + + const detail = errorData?.detail; + + return { + data: null, + error: { + general: Array.isArray(detail) + ? detail[0]?.msg + : detail?.msg || 'Ошибка изменения описания', + }, + }; + } + + const data = await res.json(); + + return { + data, + error: null, + }; + } catch (err: any) { + return { + data: null, + error: { general: err.message }, + }; + } +}; |
