add attendance

This commit is contained in:
tylen
2025-11-02 01:15:02 +02:00
parent 9a192c9b61
commit 327ab8592a
4 changed files with 168 additions and 7 deletions

View File

@@ -3,7 +3,7 @@ import { API_URL } from '../constants/constants';
import { hashPassword } from './hashPassword';
const useFetchUser = () => {
const [, setApiCookie] = useCookies(['apiToken']);
const [apiCookie, setApiCookie] = useCookies(['apiToken']);
const [, setUserNameCookie] = useCookies(['userName'])
const userSet = async (userName: string): Promise<boolean> => {
@@ -108,7 +108,55 @@ const useFetchUser = () => {
}
}
return { userSet, passwordCreate, signUser, validToken };
const updateAttendance = async (attendanceStatus: boolean): Promise<boolean> => {
const token = apiCookie.apiToken
try {
const response = await fetch(`${API_URL}/users/attendance`, {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
token,
attendance: attendanceStatus,
}),
});
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
const data = await response.json();
if (!data.success) throw new Error(data.message);
return true; // Attendance updated successfully
} catch (error) {
console.error('Error updating attendance:', error);
return false; // Attendance update failed
}
}
const getAttendance = async (): Promise<boolean | null> => {
const token = apiCookie.apiToken
try {
const response = await fetch(`${API_URL}/users/attendance?token=${encodeURIComponent(token)}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
}
});
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
const data = await response.json();
if (!data.success) throw new Error(data.message);
return data.attendance; // Returns attendance status (true/false)
} catch (error) {
console.error('Error retrieving attendance:', error);
return null; // In case of error or if attendance status is not found
}
}
return { userSet, passwordCreate, signUser, validToken, updateAttendance, getAttendance };
};
export default useFetchUser;