2022-11-19 14:21:26 +00:00
|
|
|
// services
|
|
|
|
import { USER_ENDPOINT, USER_ISSUES_ENDPOINT, USER_ONBOARD_ENDPOINT } from "constants/api-routes";
|
|
|
|
import APIService from "lib/services/api.service";
|
|
|
|
|
2022-11-30 21:39:33 +00:00
|
|
|
const { NEXT_PUBLIC_API_BASE_URL } = process.env;
|
|
|
|
|
2022-11-19 14:21:26 +00:00
|
|
|
class UserService extends APIService {
|
|
|
|
constructor() {
|
2022-11-30 21:39:33 +00:00
|
|
|
super(NEXT_PUBLIC_API_BASE_URL || "http://localhost:8000");
|
2022-11-19 14:21:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
currentUserConfig() {
|
|
|
|
return {
|
|
|
|
url: `${this.baseURL}/api/users/me/`,
|
|
|
|
headers: this.getHeaders(),
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
async userIssues(): Promise<any> {
|
|
|
|
return this.get(USER_ISSUES_ENDPOINT)
|
|
|
|
.then((response) => {
|
|
|
|
return response?.data;
|
|
|
|
})
|
|
|
|
.catch((error) => {
|
|
|
|
throw error?.response?.data;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async currentUser(): Promise<any> {
|
2022-11-24 14:53:50 +00:00
|
|
|
if (!this.getAccessToken()) return null;
|
2022-11-19 14:21:26 +00:00
|
|
|
return this.get(USER_ENDPOINT)
|
|
|
|
.then((response) => {
|
|
|
|
return response?.data;
|
|
|
|
})
|
|
|
|
.catch((error) => {
|
2022-11-24 14:53:50 +00:00
|
|
|
this.purgeAccessToken();
|
2022-11-19 14:21:26 +00:00
|
|
|
throw error?.response?.data;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async updateUser(data = {}): Promise<any> {
|
|
|
|
return this.patch(USER_ENDPOINT, data)
|
|
|
|
.then((response) => {
|
|
|
|
return response?.data;
|
|
|
|
})
|
|
|
|
.catch((error) => {
|
|
|
|
throw error?.response?.data;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async updateUserOnBoard(): Promise<any> {
|
|
|
|
return this.patch(USER_ONBOARD_ENDPOINT, { is_onboarded: true })
|
|
|
|
.then((response) => {
|
|
|
|
return response?.data;
|
|
|
|
})
|
|
|
|
.catch((error) => {
|
|
|
|
throw error?.response?.data;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default new UserService();
|