From f8e47496fae7452b2371a8f5cd7ed75b86f32c64 Mon Sep 17 00:00:00 2001 From: Yunus M Date: Thu, 24 Oct 2024 00:08:02 +0530 Subject: [PATCH] feat: add get and update apis for org and user preferences --- .../api/preferences/getAllOrgPreferences.ts | 18 +++++++++ .../api/preferences/getAllUserPreference.ts | 18 +++++++++ .../src/api/preferences/getOrgPreference.ts | 20 ++++++++++ .../src/api/preferences/getUserPreference.ts | 22 +++++++++++ .../api/preferences/updateOrgPreference.ts | 25 ++++++++++++ .../api/preferences/updateUserPreference.ts | 25 ++++++++++++ .../api/preferences/userOrgPreferences.ts | 39 +++++++++++++++++++ 7 files changed, 167 insertions(+) create mode 100644 frontend/src/api/preferences/getAllOrgPreferences.ts create mode 100644 frontend/src/api/preferences/getAllUserPreference.ts create mode 100644 frontend/src/api/preferences/getOrgPreference.ts create mode 100644 frontend/src/api/preferences/getUserPreference.ts create mode 100644 frontend/src/api/preferences/updateOrgPreference.ts create mode 100644 frontend/src/api/preferences/updateUserPreference.ts create mode 100644 frontend/src/types/api/preferences/userOrgPreferences.ts diff --git a/frontend/src/api/preferences/getAllOrgPreferences.ts b/frontend/src/api/preferences/getAllOrgPreferences.ts new file mode 100644 index 0000000000..12f6497c0e --- /dev/null +++ b/frontend/src/api/preferences/getAllOrgPreferences.ts @@ -0,0 +1,18 @@ +import axios from 'api'; +import { ErrorResponse, SuccessResponse } from 'types/api'; +import { GetAllOrgPreferencesResponseProps } from 'types/api/preferences/userOrgPreferences'; + +const getAllOrgPreferences = async (): Promise< + SuccessResponse | ErrorResponse +> => { + const response = await axios.get(`/org/preferences`); + + return { + statusCode: 200, + error: null, + message: response.data.status, + payload: response.data, + }; +}; + +export default getAllOrgPreferences; diff --git a/frontend/src/api/preferences/getAllUserPreference.ts b/frontend/src/api/preferences/getAllUserPreference.ts new file mode 100644 index 0000000000..f7e94f76cb --- /dev/null +++ b/frontend/src/api/preferences/getAllUserPreference.ts @@ -0,0 +1,18 @@ +import axios from 'api'; +import { ErrorResponse, SuccessResponse } from 'types/api'; +import { GetAllUserPreferencesResponseProps } from 'types/api/preferences/userOrgPreferences'; + +const getAllUserPreferences = async (): Promise< + SuccessResponse | ErrorResponse +> => { + const response = await axios.get(`/user/preferences`); + + return { + statusCode: 200, + error: null, + message: response.data.status, + payload: response.data, + }; +}; + +export default getAllUserPreferences; diff --git a/frontend/src/api/preferences/getOrgPreference.ts b/frontend/src/api/preferences/getOrgPreference.ts new file mode 100644 index 0000000000..6a016ddd3a --- /dev/null +++ b/frontend/src/api/preferences/getOrgPreference.ts @@ -0,0 +1,20 @@ +import axios from 'api'; +import { ErrorResponse, SuccessResponse } from 'types/api'; +import { GetOrgPreferenceResponseProps } from 'types/api/preferences/userOrgPreferences'; + +const getOrgPreference = async ({ + preferenceID, +}: { + preferenceID: string; +}): Promise | ErrorResponse> => { + const response = await axios.get(`/org/preferences/${preferenceID}`); + + return { + statusCode: 200, + error: null, + message: response.data.status, + payload: response.data, + }; +}; + +export default getOrgPreference; diff --git a/frontend/src/api/preferences/getUserPreference.ts b/frontend/src/api/preferences/getUserPreference.ts new file mode 100644 index 0000000000..a750732a92 --- /dev/null +++ b/frontend/src/api/preferences/getUserPreference.ts @@ -0,0 +1,22 @@ +import axios from 'api'; +import { ErrorResponse, SuccessResponse } from 'types/api'; +import { GetUserPreferenceResponseProps } from 'types/api/preferences/userOrgPreferences'; + +const getUserPreference = async ({ + preferenceID, +}: { + preferenceID: string; +}): Promise< + SuccessResponse | ErrorResponse +> => { + const response = await axios.get(`/user/preferences/${preferenceID}`); + + return { + statusCode: 200, + error: null, + message: response.data.status, + payload: response.data, + }; +}; + +export default getUserPreference; diff --git a/frontend/src/api/preferences/updateOrgPreference.ts b/frontend/src/api/preferences/updateOrgPreference.ts new file mode 100644 index 0000000000..76e5a68640 --- /dev/null +++ b/frontend/src/api/preferences/updateOrgPreference.ts @@ -0,0 +1,25 @@ +import axios from 'api'; +import { ErrorResponse, SuccessResponse } from 'types/api'; +import { + UpdateOrgPreferenceProps, + UpdateOrgPreferenceResponseProps, +} from 'types/api/preferences/userOrgPreferences'; + +const updateOrgPreference = async ( + preferencePayload: UpdateOrgPreferenceProps, +): Promise< + SuccessResponse | ErrorResponse +> => { + const response = await axios.put(`/org/preferences`, { + preference_value: preferencePayload.value, + }); + + return { + statusCode: 200, + error: null, + message: response.data.status, + payload: response.data.data, + }; +}; + +export default updateOrgPreference; diff --git a/frontend/src/api/preferences/updateUserPreference.ts b/frontend/src/api/preferences/updateUserPreference.ts new file mode 100644 index 0000000000..5b6b0427d6 --- /dev/null +++ b/frontend/src/api/preferences/updateUserPreference.ts @@ -0,0 +1,25 @@ +import axios from 'api'; +import { ErrorResponse, SuccessResponse } from 'types/api'; +import { + UpdateUserPreferenceProps, + UpdateUserPreferenceResponseProps, +} from 'types/api/preferences/userOrgPreferences'; + +const updateUserPreference = async ( + preferencePayload: UpdateUserPreferenceProps, +): Promise< + SuccessResponse | ErrorResponse +> => { + const response = await axios.put(`/user/preferences`, { + preference_value: preferencePayload.value, + }); + + return { + statusCode: 200, + error: null, + message: response.data.status, + payload: response.data.data, + }; +}; + +export default updateUserPreference; diff --git a/frontend/src/types/api/preferences/userOrgPreferences.ts b/frontend/src/types/api/preferences/userOrgPreferences.ts new file mode 100644 index 0000000000..959b6bb142 --- /dev/null +++ b/frontend/src/types/api/preferences/userOrgPreferences.ts @@ -0,0 +1,39 @@ +export interface GetOrgPreferenceResponseProps { + status: string; + data: string; +} + +export interface GetUserPreferenceResponseProps { + status: string; + data: string; +} + +export interface GetAllOrgPreferencesResponseProps { + status: string; + data: string; +} + +export interface GetAllUserPreferencesResponseProps { + status: string; + data: string; +} + +export interface UpdateOrgPreferenceProps { + key: string; + value: string; +} + +export interface UpdateUserPreferenceProps { + key: string; + value: string; +} + +export interface UpdateOrgPreferenceResponseProps { + status: string; + data: string; +} + +export interface UpdateUserPreferenceResponseProps { + status: string; + data: string; +}