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; +}