diff --git a/src/actions/user.js b/src/actions/user.js index fb7f9d42daee80a31b5d1c93a8dfbdd3d8ac51a5..180a086fa62aa4ef1b185efdc8f2a5b59c8c220a 100644 --- a/src/actions/user.js +++ b/src/actions/user.js @@ -148,25 +148,25 @@ export async function fetchPendingRequests(store, request = igClient) { } } -export async function processUserRequest(store, requestId, request = igClient) { +export const processUserRequest = async (store, requestId) => { store.setState({ isLoading: true }); - request.token = sessionStorage.getItem('access_token'); + igClient.token = sessionStorage.getItem('access_token'); try { - await request.processUserRequest(requestId); + return await igClient.processUserRequest(requestId); } catch (error) { console.error(error); } -} +}; -export async function deleteUserRequest(store, requestId, request = igClient) { +export const deleteUserRequest = async (store, requestId) => { store.setState({ isLoading: true }); - request.token = sessionStorage.getItem('access_token'); + igClient.token = sessionStorage.getItem('access_token'); try { - await request.deleteUserRequest(requestId); + return await igClient.deleteUserRequest(requestId); } catch (error) { console.error(error); } -} +}; export const createRole = async (store, name, description, request = igClient) => { try { diff --git a/src/components/Header/Header.js b/src/components/Header/Header.js index 3064767db8e3af835d5258d1ce7d9e375943e3a7..a534badb7db6d16d5bf1f82a7a4888068a16dec4 100644 --- a/src/components/Header/Header.js +++ b/src/components/Header/Header.js @@ -1,5 +1,5 @@ import React, { useState, useEffect, useCallback } from 'react'; -import { AppBar, Toolbar, IconButton, Menu, MenuItem } from '@material-ui/core'; +import { AppBar, Toolbar, IconButton, Menu } from '@material-ui/core'; import { Menu as MenuIcon, Person as AccountIcon, diff --git a/src/context/InSylvaGatekeeperClient.js b/src/context/InSylvaGatekeeperClient.js index d1b85689abbf13ebae294e2f1aa723e27270fafe..f976cd7d1417d7fcdabad83740d3a703e1ca9634 100644 --- a/src/context/InSylvaGatekeeperClient.js +++ b/src/context/InSylvaGatekeeperClient.js @@ -80,7 +80,7 @@ class InSylvaGatekeeperClient { async deleteUserRequest(id) { const path = `/user/delete-request`; - await this.post('DELETE', `${path}`, { + return await this.post('DELETE', `${path}`, { id, }); } diff --git a/src/pages/requests/Requests.js b/src/pages/requests/Requests.js index 97bec19ab93d708f309a7d1ff83ce2f0d26cac68..04d3fcd72645f62a93330d81cdd3000799c5fafb 100644 --- a/src/pages/requests/Requests.js +++ b/src/pages/requests/Requests.js @@ -65,25 +65,39 @@ const Requests = () => { }, [loadRequests, loadPendingRequests]); const onDeleteRequest = async (request) => { - if (request) { - await globalActions.user.deleteUserRequest(request.id); - setOpen(true); + if (!request) { + return; + } + const result = await globalActions.user.deleteUserRequest(request.id); + if (result && !result.error) { setAlertMessage('Request has been deleted.'); setSeverity('success'); - await loadRequests(); - await loadPendingRequests(); + setOpen(true); + } else { + setAlertMessage(`Error: ${result.error}`); + setSeverity('error'); + setOpen(true); } + await loadRequests(); + await loadPendingRequests(); }; const onProcessRequest = async (request) => { - if (request) { - await globalActions.user.processUserRequest(request.id); - setOpen(true); + if (!request) { + return; + } + const result = await globalActions.user.processUserRequest(request.id); + if (result && !result.error) { setAlertMessage('Request has been processed.'); setSeverity('success'); - await loadRequests(); - await loadPendingRequests(); + setOpen(true); + } else { + setAlertMessage(`Error: ${result.error}`); + setSeverity('error'); + setOpen(true); } + await loadRequests(); + await loadPendingRequests(); }; const requestActions = [