Skip to content
Extraits de code Groupes Projets
users.ts 2,79 ko
Newer Older
  • Learn to ignore specific revisions
  • Brieuc Dubois's avatar
    Brieuc Dubois a validé
    import type { fetchType } from '$lib/utils/types';
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    export async function getUsersAPI(fetch: fetchType): Promise<any[]> {
    	const response = await fetch(`/api/users`);
    	if (!response.ok) return [];
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	return await response.json();
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    export async function getUserAPI(fetch: fetchType, user_id: number): Promise<any | null> {
    	const response = await fetch(`/api/users/${user_id}`);
    	if (!response.ok) return null;
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	return await response.json();
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    export async function getUserByEmailAPI(fetch: fetchType, email: string) {
    	const response = await fetch(`/api/users/by-email/${email}`);
    	if (!response.ok) return null;
    	return await response.json();
    }
    
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    export async function createUserContactAPI(
    	fetch: fetchType,
    	user_id: number,
    	contact_id: number
    ): Promise<any | null> {
    	const response = await fetch(`/api/users/${user_id}/contacts/${contact_id}`);
    	if (!response.ok) return null;
    	return await response.json();
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    export async function createUserContactFromEmailAPI(
    	fetch: fetchType,
    	user_id: number,
    	email: string
    ): Promise<any | null> {
    	const response = await fetch(`/api/users/${user_id}/contacts-email/${email}`, { method: 'POST' });
    	if (!response.ok) return null;
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	return await response.json();
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    export async function getUserContactsAPI(fetch: fetchType, user_id: number): Promise<any[]> {
    	const response = await fetch(`/api/users/${user_id}/contacts`);
    	if (!response.ok) return [];
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	return await response.json();
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    export async function getUserContactSessionsAPI(
    	fetch: fetchType,
    	user_id: number,
    	contact_id: number
    ): Promise<any[]> {
    	const response = await fetch(`/api/users/${user_id}/contacts/${contact_id}/sessions`);
    	if (!response.ok) return [];
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	return await response.json();
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    export async function createUserAPI(
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	fetch: fetchType,
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	nickname: string,
    	email: string,
    	password: string,
    	type: number,
    	is_active: boolean
    ): Promise<number | null> {
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	const response = await fetch(`/api/users`, {
    		method: 'POST',
    		headers: { 'Content-Type': 'application/json' },
    		body: JSON.stringify({ nickname, email, password, type, is_active })
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	if (!response.ok) return null;
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	return parseInt(await response.text());
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    }
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    export async function patchUserAPI(fetch: fetchType, user_id: number, data: any) {
    	const response = await fetch(`/api/users/${user_id}`, {
    		method: 'PATCH',
    		headers: { 'Content-Type': 'application/json' },
    		body: JSON.stringify(data)
    	});
    	return response.ok;
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    export async function createWeeklySurveyAPI(
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	fetch: fetchType,
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	user_id: number,
    	q1: number,
    	q2: number,
    	q3: number,
    	q4: number
    ): Promise<number | null> {
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	const response = await fetch(`/api/users/${user_id}/surveys/weekly`, {
    		method: 'POST',
    		headers: { 'Content-Type': 'application/json' },
    		body: JSON.stringify({ q1, q2, q3, q4 })
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    	});
    
    Brieuc Dubois's avatar
    Brieuc Dubois a validé
    
    	if (!response.ok) return null;
    
    	return parseInt(await response.text());