Updated all API requests
This commit is contained in:
parent
9f6618d787
commit
efed383a4d
16 changed files with 194 additions and 190 deletions
|
|
@ -29,12 +29,14 @@ function EditUserFormController() {
|
|||
|
||||
async function handleSubmit(e) {
|
||||
e.preventDefault();
|
||||
const error = await updateUserDetails(form);
|
||||
|
||||
if (error) {
|
||||
setError(() => error);
|
||||
} else {
|
||||
try {
|
||||
await updateUserDetails(form);
|
||||
navigate('/');
|
||||
} catch (error) {
|
||||
const message = error.response.data;
|
||||
|
||||
setError(() => message.error);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,12 +36,13 @@ function LoginFormController({ setToken }) {
|
|||
async function handleSubmit(e) {
|
||||
e.preventDefault();
|
||||
|
||||
const { error } = await login(form);
|
||||
|
||||
if (error) {
|
||||
setError(() => error);
|
||||
} else {
|
||||
try {
|
||||
await login(form);
|
||||
navigate('/');
|
||||
} catch (error) {
|
||||
const message = error.response.data;
|
||||
|
||||
setError(() => message.error);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,31 +35,52 @@ function MainPageController() {
|
|||
}
|
||||
|
||||
async function retrieveOwnedOrgs() {
|
||||
const { orgs } = await getOwnedOrgs().catch((e) => console.log(e));
|
||||
try {
|
||||
const { orgs } = await getOwnedOrgs().catch((e) => console.error(e));
|
||||
setOwnedOrgs(() => orgs);
|
||||
} catch (error) {
|
||||
const message = error.response.data;
|
||||
|
||||
setOwnedOrgs(() => orgs);
|
||||
console.error(message.error);
|
||||
}
|
||||
}
|
||||
|
||||
async function retrieveMemberOrgs() {
|
||||
const { orgs } = await getMemberOrgs().catch((e) => console.log(e));
|
||||
try {
|
||||
const { orgs } = await getMemberOrgs().catch((e) => console.error(e));
|
||||
setOrgs(() => orgs);
|
||||
} catch (error) {
|
||||
const message = error.response.data;
|
||||
|
||||
setOrgs(() => orgs);
|
||||
console.error(message.error);
|
||||
}
|
||||
}
|
||||
|
||||
async function makeOrg(e) {
|
||||
e.preventDefault();
|
||||
|
||||
await createOrg({ orgName: form.name })
|
||||
.then(retrieveOwnedOrgs)
|
||||
.catch((e) => console.log(e));
|
||||
try {
|
||||
await createOrg({ orgName: form.name })
|
||||
.then(retrieveOwnedOrgs)
|
||||
.catch((e) => console.log(e));
|
||||
} catch (error) {
|
||||
const message = error.response.data;
|
||||
|
||||
console.error(message.error);
|
||||
}
|
||||
}
|
||||
|
||||
async function joinOrg(e) {
|
||||
e.preventDefault();
|
||||
|
||||
await addMember(form.id)
|
||||
.then(retrieveMemberOrgs)
|
||||
.catch((e) => console.log(e));
|
||||
try {
|
||||
await addMember(form.id);
|
||||
await retrieveMemberOrgs();
|
||||
} catch (error) {
|
||||
const message = error.response.data;
|
||||
|
||||
console.error(message.error);
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -9,9 +9,15 @@ function MemberOrgsDashboard() {
|
|||
|
||||
function getOrgs() {
|
||||
if (Cookies.get('token')) {
|
||||
getMemberOrgs().then((res) => {
|
||||
setOrgs(() => res.orgs);
|
||||
});
|
||||
getMemberOrgs()
|
||||
.then((res) => {
|
||||
setOrgs(() => res.orgs);
|
||||
})
|
||||
.catch((error) => {
|
||||
const message = error.response.data;
|
||||
|
||||
console.error(message.error);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,14 @@ export default function NavbarController() {
|
|||
const md = useMediaQuery((theme) => theme.breakpoints.only('md'));
|
||||
|
||||
const logoutUser = async () => {
|
||||
await logout();
|
||||
try {
|
||||
await logout();
|
||||
} catch (error) {
|
||||
const message = error.response.data;
|
||||
|
||||
console.error(message.error);
|
||||
}
|
||||
|
||||
Cookies.remove('token');
|
||||
setUserData({});
|
||||
navigate('/login');
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ function OrganizationDashboardController() {
|
|||
setStatus(() => res.owner);
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e);
|
||||
console.error(e.response.data.error);
|
||||
navigate('/');
|
||||
});
|
||||
}
|
||||
|
|
@ -51,7 +51,12 @@ function OrganizationDashboardController() {
|
|||
}
|
||||
|
||||
async function handleDelete() {
|
||||
await deleteOrg(orgID).then(navigate('/'));
|
||||
await deleteOrg(orgID)
|
||||
.then(navigate('/'))
|
||||
.catch((e) => {
|
||||
console.error(e.response.data.error);
|
||||
navigate('/');
|
||||
});
|
||||
}
|
||||
|
||||
function copyID() {
|
||||
|
|
@ -67,22 +72,36 @@ function OrganizationDashboardController() {
|
|||
async function removeSelected() {
|
||||
const doomedUserIDs = selection.map((row) => row.id);
|
||||
|
||||
await removeMember(orgID, doomedUserIDs);
|
||||
try {
|
||||
await removeMember(orgID, doomedUserIDs);
|
||||
} catch (error) {
|
||||
const message = error.response.data;
|
||||
|
||||
console.error(message.error);
|
||||
}
|
||||
}
|
||||
|
||||
async function leaveOrg() {
|
||||
await removeMember(orgID, {}).then(navigate('/'));
|
||||
await removeMember(orgID, {})
|
||||
.then(navigate('/'))
|
||||
.catch((e) => {
|
||||
console.error(e.response.data.error);
|
||||
});
|
||||
}
|
||||
|
||||
async function play(id) {
|
||||
await getAudio(id).then((res) => {
|
||||
const uploadedFile = new File([res], 'userAudio.mp3', {
|
||||
type: res.type,
|
||||
lastModified: Date.now(),
|
||||
await getAudio(id)
|
||||
.then((res) => {
|
||||
const uploadedFile = new File([res], 'userAudio.mp3', {
|
||||
type: res.type,
|
||||
lastModified: Date.now(),
|
||||
});
|
||||
const audioFile = new Audio(URL.createObjectURL(uploadedFile));
|
||||
audioFile.play();
|
||||
})
|
||||
.catch((e) => {
|
||||
console.error(e.response.data.error);
|
||||
});
|
||||
const audioFile = new Audio(URL.createObjectURL(uploadedFile));
|
||||
audioFile.play();
|
||||
});
|
||||
}
|
||||
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -9,9 +9,13 @@ function OwnedOrgsDashboard() {
|
|||
|
||||
function getOrgs() {
|
||||
if (Cookies.get('token')) {
|
||||
getOwnedOrgs().then((res) => {
|
||||
setOrgs(() => res.orgs);
|
||||
});
|
||||
getOwnedOrgs()
|
||||
.then((res) => {
|
||||
setOrgs(() => res.orgs);
|
||||
})
|
||||
.catch((e) => {
|
||||
console.error(e.response.data.error);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,19 +20,23 @@ function RecordMp3Controller() {
|
|||
|
||||
useEffect(() => {
|
||||
if (!userData.loading) {
|
||||
getAudio(userData.id).then((data) => {
|
||||
if (!data) {
|
||||
return;
|
||||
}
|
||||
getAudio(userData.id)
|
||||
.then((data) => {
|
||||
if (!data) {
|
||||
return;
|
||||
}
|
||||
|
||||
setUploadedFile(() => {
|
||||
// Retrieve audio file of user if exists
|
||||
return new File([data], 'userAudio.mp3', {
|
||||
type: data.type,
|
||||
lastModified: Date.now(),
|
||||
setUploadedFile(() => {
|
||||
// Retrieve audio file of user if exists
|
||||
return new File([data], 'userAudio.mp3', {
|
||||
type: data.type,
|
||||
lastModified: Date.now(),
|
||||
});
|
||||
});
|
||||
})
|
||||
.catch((e) => {
|
||||
console.error(e.response.data.error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}, [userData]);
|
||||
|
||||
|
|
@ -92,7 +96,9 @@ function RecordMp3Controller() {
|
|||
formData.append('audioFile', uploadedFile, 'userAudio.mp3');
|
||||
formData.append('token', Cookies.get('token'));
|
||||
|
||||
await setAudio(formData);
|
||||
setAudio(formData).catch((e) => {
|
||||
console.error(e.response.data.error);
|
||||
});
|
||||
}
|
||||
|
||||
return <RecordMp3 {...{ togglePlay, record, uploadRecord, handleSubmit }} />;
|
||||
|
|
|
|||
|
|
@ -20,9 +20,13 @@ function RecoverFormController() {
|
|||
|
||||
async function handleSubmit(e) {
|
||||
e.preventDefault();
|
||||
const response = await requestReset(form);
|
||||
if (response?.error) {
|
||||
setError(response.error);
|
||||
|
||||
try {
|
||||
await requestReset(form);
|
||||
} catch (error) {
|
||||
const message = error.response.data;
|
||||
|
||||
setError(message.error);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,12 +32,14 @@ function RegisterFormController() {
|
|||
e.preventDefault();
|
||||
|
||||
const { confirmPassword, ...filteredForm } = form;
|
||||
const response = await register({ ...filteredForm, orgID: params.get('orgID') });
|
||||
|
||||
if (response?.error) {
|
||||
setError(() => response.error);
|
||||
} else {
|
||||
try {
|
||||
await register({ ...filteredForm, orgID: params.get('orgID') });
|
||||
navigate('/login');
|
||||
} catch (error) {
|
||||
const message = error.response.data;
|
||||
|
||||
setError(message.error);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,12 +27,13 @@ function ResetFormController() {
|
|||
async function handleSubmit(e) {
|
||||
e.preventDefault();
|
||||
|
||||
const error = await resetPassword(id, { password: form.password });
|
||||
|
||||
if (error) {
|
||||
setError(() => error);
|
||||
} else {
|
||||
try {
|
||||
await resetPassword(id, { password: form.password });
|
||||
navigate('/login');
|
||||
} catch (error) {
|
||||
const message = error.response.data;
|
||||
|
||||
setError(message.error);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,9 +19,13 @@ function UpdateOrganizationFormController() {
|
|||
async function handleSubmit(e) {
|
||||
e.preventDefault();
|
||||
|
||||
await updateOrgDetails(orgID, { orgName: name }).then(() => {
|
||||
navigate(`/org/${orgID}`);
|
||||
});
|
||||
await updateOrgDetails(orgID, { orgName: name })
|
||||
.then(() => {
|
||||
navigate(`/org/${orgID}`);
|
||||
})
|
||||
.catch((e) => {
|
||||
console.error(e.response.data.error);
|
||||
});
|
||||
}
|
||||
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -6,73 +6,43 @@ async function addMember(id) {
|
|||
const instance = createRequest(`/org`);
|
||||
instance.defaults.headers.common['Authorization'] = `bearer ${Cookies.get('token')}`;
|
||||
|
||||
try {
|
||||
await instance.post(`/${id}/add`);
|
||||
} catch (error) {
|
||||
console.log(error.response.data);
|
||||
return error;
|
||||
}
|
||||
await instance.post(`/${id}/add`);
|
||||
}
|
||||
|
||||
async function createOrg(data) {
|
||||
const instance = createRequest('/org');
|
||||
instance.defaults.headers.common['Authorization'] = `bearer ${Cookies.get('token')}`;
|
||||
|
||||
try {
|
||||
await instance.post('/', data);
|
||||
} catch (error) {
|
||||
console.log(error.response.data);
|
||||
return error;
|
||||
}
|
||||
await instance.post('/', data);
|
||||
}
|
||||
|
||||
async function deleteOrg(id) {
|
||||
const instance = createRequest('/org');
|
||||
instance.defaults.headers.common['Authorization'] = `bearer ${Cookies.get('token')}`;
|
||||
|
||||
try {
|
||||
await instance.delete(`/${id}`);
|
||||
} catch (error) {
|
||||
console.log(error.response.data);
|
||||
return error;
|
||||
}
|
||||
await instance.delete(`/${id}`);
|
||||
}
|
||||
|
||||
async function getOrg(id) {
|
||||
const instance = createRequest('/org');
|
||||
instance.defaults.headers.common['Authorization'] = `bearer ${Cookies.get('token')}`;
|
||||
|
||||
try {
|
||||
const response = await instance.get(`/${id}`);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.log(error.response.data);
|
||||
return error;
|
||||
}
|
||||
const response = await instance.get(`/${id}`);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
async function removeMember(id, doomedUsers) {
|
||||
const instance = createRequest('/org');
|
||||
instance.defaults.headers.common['Authorization'] = `bearer ${Cookies.get('token')}`;
|
||||
|
||||
try {
|
||||
await instance.post(`/${id}/remove`, { doomedUsers });
|
||||
} catch (error) {
|
||||
console.log(error.response.data);
|
||||
return error;
|
||||
}
|
||||
await instance.post(`/${id}/remove`, { doomedUsers });
|
||||
}
|
||||
|
||||
async function updateOrgDetails(id, data) {
|
||||
const instance = createRequest('/org');
|
||||
instance.defaults.headers.common['Authorization'] = `bearer ${Cookies.get('token')}`;
|
||||
|
||||
try {
|
||||
await instance.patch(`/${id}`, { data });
|
||||
} catch (error) {
|
||||
console.log(error.response.data);
|
||||
return error;
|
||||
}
|
||||
await instance.patch(`/${id}`, { data });
|
||||
}
|
||||
|
||||
export { addMember, createOrg, deleteOrg, getOrg, removeMember, updateOrgDetails };
|
||||
|
|
|
|||
|
|
@ -10,43 +10,28 @@ async function login({ email, password, remember }) {
|
|||
const instance = createRequest('/auth');
|
||||
instance.defaults.headers.common['Authorization'] = `basic ${encoded}`;
|
||||
|
||||
try {
|
||||
const { data } = await instance.post('/login', { remember });
|
||||
const { data } = await instance.post('/login', { remember });
|
||||
|
||||
if (remember) {
|
||||
Cookies.set('token', data.token, { expires: 365 });
|
||||
} else {
|
||||
Cookies.set('token', data.token, { expires: 1 });
|
||||
}
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error(error.response.data);
|
||||
return error;
|
||||
if (remember) {
|
||||
Cookies.set('token', data.token, { expires: 365 });
|
||||
} else {
|
||||
Cookies.set('token', data.token, { expires: 1 });
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
async function register(data) {
|
||||
const instance = createRequest('/auth');
|
||||
|
||||
try {
|
||||
await instance.post('/register', data);
|
||||
} catch (error) {
|
||||
console.error(error.response.data);
|
||||
return error;
|
||||
}
|
||||
await instance.post('/register', data);
|
||||
}
|
||||
|
||||
async function logout() {
|
||||
const instance = createRequest('/auth');
|
||||
instance.defaults.headers.common['Authorization'] = `bearer ${Cookies.get('token')}`;
|
||||
|
||||
try {
|
||||
await instance.post('/logout');
|
||||
} catch (error) {
|
||||
console.error(error.response.data);
|
||||
return error;
|
||||
}
|
||||
await instance.post('/logout');
|
||||
}
|
||||
|
||||
async function remember() {
|
||||
|
|
@ -54,50 +39,29 @@ async function remember() {
|
|||
instance.defaults.headers.common['Authorization'] = `bearer ${Cookies.get('token')}`;
|
||||
|
||||
if (Cookies.get('token')) {
|
||||
try {
|
||||
const { data } = await instance.post('/remember');
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error(error.response.data);
|
||||
return error.response.data;
|
||||
}
|
||||
const { data } = await instance.post('/remember');
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
async function getUser(userID) {
|
||||
const instance = createRequest('/auth');
|
||||
|
||||
try {
|
||||
const { data } = await instance.get(`/${userID}`);
|
||||
const { data } = await instance.get(`/${userID}`);
|
||||
|
||||
return data.user;
|
||||
} catch (error) {
|
||||
console.error(error.response.data);
|
||||
return error.response.data;
|
||||
}
|
||||
return data.user;
|
||||
}
|
||||
|
||||
async function requestReset(data) {
|
||||
const instance = createRequest('/auth');
|
||||
|
||||
try {
|
||||
await instance.post(`/reset`, data);
|
||||
} catch (error) {
|
||||
console.error(error.response.data);
|
||||
return error.response.data;
|
||||
}
|
||||
await instance.post(`/reset`, data);
|
||||
}
|
||||
|
||||
async function resetPassword(id, data) {
|
||||
const instance = createRequest('/auth');
|
||||
|
||||
try {
|
||||
await instance.patch(`/reset/${id}`, data);
|
||||
} catch (error) {
|
||||
console.error(error.response.data);
|
||||
return error.response.data;
|
||||
}
|
||||
await instance.patch(`/reset/${id}`, data);
|
||||
}
|
||||
|
||||
async function setAudio(data) {
|
||||
|
|
@ -105,67 +69,43 @@ async function setAudio(data) {
|
|||
instance.defaults.headers.common['Content-Type'] = 'multipart/form-data';
|
||||
instance.defaults.headers.common['Authorization'] = `bearer ${Cookies.get('token')}`;
|
||||
|
||||
try {
|
||||
await instance.post('/audio', data);
|
||||
} catch (error) {
|
||||
console.error(error.response.data);
|
||||
return error.response.data;
|
||||
}
|
||||
await instance.post('/audio', data);
|
||||
}
|
||||
|
||||
async function getAudio(userID) {
|
||||
try {
|
||||
const response = await axios.get(
|
||||
`${process.env.REACT_APP_DOMAIN_ROOT}/public/audio/${userID}.mp3`,
|
||||
{
|
||||
responseType: 'blob',
|
||||
}
|
||||
);
|
||||
const response = await axios.get(
|
||||
`${process.env.REACT_APP_DOMAIN_ROOT}/public/audio/${userID}.mp3`,
|
||||
{
|
||||
responseType: 'blob',
|
||||
}
|
||||
);
|
||||
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
return;
|
||||
}
|
||||
return response.data;
|
||||
}
|
||||
|
||||
async function updateUserDetails(data) {
|
||||
const instance = createRequest('/auth');
|
||||
instance.defaults.headers.common['Authorization'] = `bearer ${Cookies.get('token')}`;
|
||||
|
||||
try {
|
||||
await instance.post(`/update`, data);
|
||||
} catch (error) {
|
||||
console.error(error.response.data);
|
||||
return error.response.data;
|
||||
}
|
||||
await instance.post(`/update`, data);
|
||||
}
|
||||
|
||||
async function getMemberOrgs() {
|
||||
const instance = createRequest('/auth');
|
||||
instance.defaults.headers.common['Authorization'] = `bearer ${Cookies.get('token')}`;
|
||||
|
||||
try {
|
||||
const { data } = await instance.get(`/orgs/member`);
|
||||
const { data } = await instance.get(`/orgs/member`);
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error(error.response.data);
|
||||
return error.response.data;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
async function getOwnedOrgs() {
|
||||
const instance = createRequest('/auth');
|
||||
instance.defaults.headers.common['Authorization'] = `bearer ${Cookies.get('token')}`;
|
||||
|
||||
try {
|
||||
const res = await instance.get(`/orgs`);
|
||||
const { data } = await instance.get(`/orgs`);
|
||||
|
||||
return res.data;
|
||||
} catch (error) {
|
||||
console.error(error.response.data);
|
||||
return error.response.data;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
export {
|
||||
|
|
|
|||
|
|
@ -36,3 +36,20 @@ WithIntialData.parameters = {
|
|||
],
|
||||
},
|
||||
};
|
||||
|
||||
export const WithoutInitialData = Template.bind({});
|
||||
WithoutInitialData.args = {
|
||||
firstName: '',
|
||||
lastName: '',
|
||||
email: '',
|
||||
pronouns: '',
|
||||
};
|
||||
WithoutInitialData.parameters = {
|
||||
msw: {
|
||||
handlers: [
|
||||
rest.post(`${process.env.REACT_APP_API_ROOT}/auth/update`, (req, res, ctx) => {
|
||||
return res(ctx.status(200));
|
||||
}),
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
|
|||
2
package-lock.json
generated
2
package-lock.json
generated
|
|
@ -48624,7 +48624,7 @@
|
|||
"react-helmet": "^6.1.0",
|
||||
"react-router-dom": "^6.2.2",
|
||||
"react-scripts": "5.0.0",
|
||||
"storybook-addon-cookie": "*",
|
||||
"storybook-addon-cookie": "^1.0.6",
|
||||
"web-vitals": "^2.1.4",
|
||||
"webpack": "^5.75.0"
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue