You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.3 KiB
115 lines
3.3 KiB
import { message } from "antd";
|
|
import {
|
|
MySalaryResponse,
|
|
TMyTaskHistory,
|
|
TMystats,
|
|
TProfile,
|
|
} from "../../types/Profile/TProfile";
|
|
import instance from "../api";
|
|
|
|
export type TProfilePutParams = {
|
|
first_name?: string;
|
|
last_name?: string;
|
|
username?: string;
|
|
};
|
|
export type TMyTaskHistoryGetParams = {
|
|
start_date?: string;
|
|
end_date?: string;
|
|
};
|
|
export type TChangePostParams = {
|
|
old_password?: string;
|
|
new_password?: string;
|
|
password_confirm?: string;
|
|
};
|
|
export const prof = {
|
|
async read(filterObject: TMyTaskHistoryGetParams) {
|
|
const params = { ...filterObject };
|
|
if (!!filterObject.start_date) params.start_date = filterObject.start_date;
|
|
if (!!filterObject.end_date) params.end_date = filterObject.end_date;
|
|
const { data } = await instance.get<TMystats>(`stats/my-stats/`, {
|
|
params,
|
|
});
|
|
return data;
|
|
},
|
|
// async read(filterObject: TMyTaskHistoryGetParams) {
|
|
// const params = { ...filterObject };
|
|
// if (!!filterObject.start_date) params.start_date = filterObject.start_date;
|
|
// if (!!filterObject.end_date) params.end_date = filterObject.end_date;
|
|
// const { data } = await instance.get<TMystats>(`stats/my-stats/`, {
|
|
// params,
|
|
// });
|
|
// return data;
|
|
// },
|
|
|
|
async self() {
|
|
const { data } = await instance.get<TProfile>(`users/my-profile/`);
|
|
return data;
|
|
},
|
|
|
|
async myTaskHistory(filterObject: TMyTaskHistoryGetParams) {
|
|
const params = { ...filterObject };
|
|
|
|
if (!!filterObject.start_date) params.start_date = filterObject.start_date;
|
|
if (!!filterObject.end_date) params.end_date = filterObject.end_date;
|
|
const { data } = await instance.get<TMyTaskHistory[]>(`my-task-history/`, {
|
|
params,
|
|
});
|
|
return data;
|
|
},
|
|
|
|
async profPatch(filterObject: TProfilePutParams) {
|
|
const params = { ...filterObject };
|
|
|
|
params.first_name = filterObject.first_name || params.first_name;
|
|
params.last_name = filterObject.last_name || params.last_name;
|
|
params.username = filterObject.username || params.username;
|
|
try {
|
|
const { data } = await instance.put<TProfilePutParams>(
|
|
`users/my-profile/`,
|
|
{ ...params }
|
|
);
|
|
message.success({ content: "Changes saved" });
|
|
if (params.username) {
|
|
localStorage.setItem("username", params.username);
|
|
}
|
|
window.location.reload();
|
|
return data;
|
|
} catch (error: any) {
|
|
setTimeout(() => {
|
|
message.error({
|
|
content: error.response.data.username,
|
|
key: 2,
|
|
duration: 2,
|
|
});
|
|
}, 1000);
|
|
return null;
|
|
}
|
|
},
|
|
async changePass(obj: TChangePostParams) {
|
|
try {
|
|
const { data } = await instance.post<any>(
|
|
"users/my-profile/change-password/",
|
|
obj
|
|
);
|
|
message.success(data.message);
|
|
return data;
|
|
} catch (error: any) {
|
|
if (error.response && error.response.status === 400) {
|
|
const errorMessage =
|
|
error?.response?.data?.old_password ||
|
|
error?.response?.data?.new_password[0] ||
|
|
"Bad Request";
|
|
message.error(errorMessage);
|
|
} else {
|
|
message.error("An error occurred");
|
|
}
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
async mySalary() {
|
|
const { data } = await instance.get<MySalaryResponse>("users/my-salary/");
|
|
return data;
|
|
},
|
|
};
|