From 8d3576b10c2386391a6d0bd6ce2333951f6a0115 Mon Sep 17 00:00:00 2001 From: Lucas Schoenfelder <les17@inf.ufpr.br> Date: Fri, 5 Feb 2021 10:48:53 -0300 Subject: [PATCH] changed axios requests to fetch requests --- src/Components/CollectionReview.js | 63 +++++-------------- .../HelperFunctions/getAxiosConfig.js | 2 +- .../TabPanels/PublicUserPageTabs/TabRede.js | 4 +- .../TabPanels/UserPageTabs/PanelColecoes.js | 4 +- .../TabPanels/UserPageTabs/PanelFavoritos.js | 4 +- .../UserPageTabs/PanelMeusRecursos.js | 4 +- .../TabPanels/UserPageTabs/PanelRede.js | 4 +- .../UploadPageComponents/SendInfo.js | 3 - src/Pages/CollectionPage.js | 21 +++---- src/Pages/PublicUserPage.js | 4 +- 10 files changed, 38 insertions(+), 75 deletions(-) diff --git a/src/Components/CollectionReview.js b/src/Components/CollectionReview.js index c1b2d4f0..10cc202c 100644 --- a/src/Components/CollectionReview.js +++ b/src/Components/CollectionReview.js @@ -23,12 +23,11 @@ import IconButton from '@material-ui/core/IconButton'; import StarBorderIcon from '@material-ui/icons/StarBorder'; import FavoriteIcon from '@material-ui/icons/Favorite'; import InfoIcon from '@material-ui/icons/Info'; -import axios from 'axios'; -import { apiUrl } from '../env'; import { Store } from '../Store.js' import ReportModal from './ReportModal.js'; import SignUpModal from './SignUpModal.js'; import LoginModal from './LoginModal.js'; +import {putRequest, getRequest} from './HelperFunctions/getAxiosConfig.js' export default function CollectionReview(props) { const [likes, setLikes] = useState(0); @@ -39,61 +38,31 @@ export default function CollectionReview(props) { const [log_in_open, setLoginOpen] = useState(false); const { state } = useContext(Store); + function handleSuccessfulGet (data) { + setLikes(Number(data.likes_count)); + setLiked(data.liked); + } + useEffect(() => { - axios.get(apiUrl + '/collections/' + props.id) - .then(res => { - setLikes(Number(res.data.likes_count)); - setLiked(res.data.liked); - }); + const url = `/collections/${props.id}` + + getRequest(url, handleSuccessfulGet, (error) => {console.log(error)}) + }, [props.id]); const handleClickReport = () => { setReportOpen(true); } - const SaveNewHeaders = (response) => { - if ( - (response.headers['access-token'] === undefined || response.headers['access-token'] === null) && - (response.headers.client === undefined || response.headers.client === null) - ) { - - } else { - sessionStorage.setItem('@portalmec/accessToken', response.headers['access-token']) - sessionStorage.setItem('@portalmec/clientToken', response.headers.client) - console.log('saved') - } - } + function handleSuccess (data) { + setLiked(!liked) + setLikes(data.count) + } const handleLikeClick = () => { if (state.currentUser.id) { - const url = apiUrl + '/collections/' + props.id + '/like'; - if (!liked) - axios({ - method: 'put', - url: url, - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json; charset=utf-8', - 'access-token': sessionStorage.getItem('@portalmec/accessToken'), - 'client': sessionStorage.getItem('@portalmec/clientToken'), - 'uid': sessionStorage.getItem('@portalmec/uid'), - 'If-None-Match': null - }, - }).then(response => { - if(response.status === 201) - { - setLiked(true) - setLikes(response.data.count); - } - else - { - setLiked(false); - setLikes(response.data.count); - } - SaveNewHeaders(response) - }) - else - setLiked(!liked); + const url = `/collections/${props.id}/like` + putRequest(url, {}, handleSuccess, (error) => {console.log(error)}) } else setSignUpOpen(true); } diff --git a/src/Components/HelperFunctions/getAxiosConfig.js b/src/Components/HelperFunctions/getAxiosConfig.js index e88e370d..04dd3606 100644 --- a/src/Components/HelperFunctions/getAxiosConfig.js +++ b/src/Components/HelperFunctions/getAxiosConfig.js @@ -161,7 +161,7 @@ export const postRequest = (url, payload, onSuccess, onError) => { }) } -export const axiosAllRequest = (urls, onSuccess, onError) => { +export const fetchAllRequest = (urls, onSuccess, onError) => { Promise.all( urls.map( url => fetch(`${apiUrl}${url}`, { headers : fetchHeaders() }))).then( (responses) => { diff --git a/src/Components/TabPanels/PublicUserPageTabs/TabRede.js b/src/Components/TabPanels/PublicUserPageTabs/TabRede.js index 75201d42..c173dc19 100644 --- a/src/Components/TabPanels/PublicUserPageTabs/TabRede.js +++ b/src/Components/TabPanels/PublicUserPageTabs/TabRede.js @@ -18,7 +18,7 @@ along with Plataforma Integrada MEC. If not, see <http://www.gnu.org/licenses/> import React, {useState, useEffect} from 'react' import PanelTemplateRede from '../PanelComponents/TemplateRede.js' -import {axiosAllRequest} from '../../HelperFunctions/getAxiosConfig' +import {fetchAllRequest} from '../../HelperFunctions/getAxiosConfig' export default function TabRede (props) { const [followers, setFollowers] = useState([]) @@ -50,7 +50,7 @@ export default function TabRede (props) { const urls = [`/users/${props.id}/followers`, `/users/${props.id}/following/User`] - axiosAllRequest(urls, handleSuccess, (error) => {console.log(error)}) + fetchAllRequest(urls, handleSuccess, (error) => {console.log(error)}) }, []) return ( diff --git a/src/Components/TabPanels/UserPageTabs/PanelColecoes.js b/src/Components/TabPanels/UserPageTabs/PanelColecoes.js index 28dda245..da80d94d 100644 --- a/src/Components/TabPanels/UserPageTabs/PanelColecoes.js +++ b/src/Components/TabPanels/UserPageTabs/PanelColecoes.js @@ -29,7 +29,7 @@ import Title from '../PanelComponents/PanelTitle.js' import CollectionCardFunction from '../../CollectionCardFunction.js' import {ButtonsAreaColecao} from '../PanelComponents/ButtonsArea' import CriarColecaoModal from '../../CriarColecaoModal.js' -import {axiosAllRequest} from '../../HelperFunctions/getAxiosConfig' +import {fetchAllRequest} from '../../HelperFunctions/getAxiosConfig' export default function TabPanelColecoes (props) { const [loading, handleLoading] = useState(true) @@ -51,7 +51,7 @@ export default function TabPanelColecoes (props) { const getInfo = () => { const urls = [`/users/${props.id}/collections`, `/users/${props.id}/following/Collection`] - axiosAllRequest(urls, handleSuccess, (error) => {console.log(error)}) + fetchAllRequest(urls, handleSuccess, (error) => {console.log(error)}) } useEffect( () => { diff --git a/src/Components/TabPanels/UserPageTabs/PanelFavoritos.js b/src/Components/TabPanels/UserPageTabs/PanelFavoritos.js index 350e2bc1..4edaf748 100644 --- a/src/Components/TabPanels/UserPageTabs/PanelFavoritos.js +++ b/src/Components/TabPanels/UserPageTabs/PanelFavoritos.js @@ -20,7 +20,7 @@ import React, {useState, useEffect} from 'react' import LoadingSpinner from '../../LoadingSpinner.js' import Template from '../PanelComponents/TemplateRecurso.js' import PanelTemplateColecao from '../PanelComponents/TemplateColecao.js' -import {axiosAllRequest} from '../../HelperFunctions/getAxiosConfig' +import {fetchAllRequest} from '../../HelperFunctions/getAxiosConfig' export default function TabPanelFavoritos (props) { const [loading, handleLoading] = useState(true) @@ -44,7 +44,7 @@ export default function TabPanelFavoritos (props) { useEffect( () => { const urls = [ `/users/${props.id}/learning_objects/liked`, `/users/${props.id}/collections/liked`] - axiosAllRequest(urls, handleSuccess, (error) => {console.log(error)}) + fetchAllRequest(urls, handleSuccess, (error) => {console.log(error)}) }, []) diff --git a/src/Components/TabPanels/UserPageTabs/PanelMeusRecursos.js b/src/Components/TabPanels/UserPageTabs/PanelMeusRecursos.js index 0faa14af..05668209 100644 --- a/src/Components/TabPanels/UserPageTabs/PanelMeusRecursos.js +++ b/src/Components/TabPanels/UserPageTabs/PanelMeusRecursos.js @@ -20,7 +20,7 @@ import React, {useState, useEffect} from 'react' import LoadingSpinner from '../../LoadingSpinner.js' import Template from '../PanelComponents/TemplateRecurso.js' import TemplateCuradoria from '../PanelComponents/TemplateCuradoria.js' -import {axiosAllRequest} from '../../HelperFunctions/getAxiosConfig' +import {fetchAllRequest} from '../../HelperFunctions/getAxiosConfig' export default function TabPanelAtividades (props) { const [loading, handleLoading] = useState(true) @@ -54,7 +54,7 @@ export default function TabPanelAtividades (props) { `/users/${props.id}/submissions?status=submitted` ] - axiosAllRequest(urls, handleSuccess, (error) => {console.log(error)}) + fetchAllRequest(urls, handleSuccess, (error) => {console.log(error)}) }, []) const showMoreLearnObj = () => { diff --git a/src/Components/TabPanels/UserPageTabs/PanelRede.js b/src/Components/TabPanels/UserPageTabs/PanelRede.js index 96940f9e..cf734021 100644 --- a/src/Components/TabPanels/UserPageTabs/PanelRede.js +++ b/src/Components/TabPanels/UserPageTabs/PanelRede.js @@ -20,7 +20,7 @@ import React, {useState, useEffect} from 'react' import LoadingSpinner from '../../LoadingSpinner.js' import ContainerRedeVazia from './ContainerRedeVazia.js' import PanelTemplateRede from '../PanelComponents/TemplateRede.js' -import {axiosAllRequest} from '../../HelperFunctions/getAxiosConfig' +import {fetchAllRequest} from '../../HelperFunctions/getAxiosConfig' export default function TabPanelRede (props) { const [loading, handleLoading] = useState(true) @@ -61,7 +61,7 @@ export default function TabPanelRede (props) { `/users/${props.id}/followers` ] - axiosAllRequest(urls, handleSuccess, (error) => {console.log(error)}) + fetchAllRequest(urls, handleSuccess, (error) => {console.log(error)}) }, []) return ( diff --git a/src/Components/UploadPageComponents/SendInfo.js b/src/Components/UploadPageComponents/SendInfo.js index 8b5a4070..ebcb1b95 100644 --- a/src/Components/UploadPageComponents/SendInfo.js +++ b/src/Components/UploadPageComponents/SendInfo.js @@ -35,9 +35,6 @@ export function SendInfo (fieldName, payload, draftID) { } putObject.learning_object[key] = value - console.log("typeof putObject", typeof putObject) - console.log(putObject) - const url = `/learning_objects/${draftID}` putRequest(url, putObject, (data) => {console.log(data)}, (error) => {console.log(error)}) diff --git a/src/Pages/CollectionPage.js b/src/Pages/CollectionPage.js index 123f6c6a..f064a674 100644 --- a/src/Pages/CollectionPage.js +++ b/src/Pages/CollectionPage.js @@ -16,20 +16,20 @@ You should have received a copy of the GNU Affero General Public License along with Plataforma Integrada MEC. If not, see <http://www.gnu.org/licenses/>.*/ import React, { useRef, useState, useEffect, useContext } from 'react'; -import axios from 'axios'; import { Grid } from '@material-ui/core'; import CollectionAuthor from '../Components/CollectionAuthor.js'; import VerticalRuler from '../Components/VerticalRuler.js'; import CollectionDescription from '../Components/CollectionDescription.js'; import ResourceList from '../Components/ResourceList.js'; import CollectionCommentSection from '../Components/CollectionCommentSection.js'; -import { apiUrl, apiDomain } from '../env'; +import { apiDomain } from '../env'; import styled from 'styled-components'; import DowloadButton from '../Components/CollectionDowloadButton.js'; import Breadcrumbs from "@material-ui/core/Breadcrumbs"; import { Link } from 'react-router-dom'; import FollowCollectionButton from '../Components/FollowCollectionButton'; import { Store } from '../Store.js' +import {getRequest} from '../Components/HelperFunctions/getAxiosConfig.js' export default function CollectionPage(props) { const { state } = useContext(Store); @@ -42,10 +42,9 @@ export default function CollectionPage(props) { const comment_ref = useRef(null); useEffect(() => { - axios.get(apiUrl + '/collections/' + collection_id) - .then(res => { - setCollection(Object.assign({}, res.data)); - }); + const url = `/collections/${collection_id}` + + getRequest(url, (data) => {setCollection(Object.assign({}, data))}, (error) => {console.log(error)}) }, []); const handleScrollToComments = () => { @@ -141,11 +140,11 @@ export default function CollectionPage(props) { // style={mainContainerStyle}> // <Grid item xs={10} md={3}> - // <CollectionAuthor + // <CollectionAuthor // author_id={collection.owner ? collection.owner.id : 0} // name={collection.owner ? collection.owner.name : ""} // imgsrc={collection.owner ? apiDomain+collection.owner.avatar : ''}/> - // </Grid> + // </Grid> // <VerticalRuler width={1} height={300} color="rgb(238, 238, 238)"/> @@ -154,12 +153,12 @@ export default function CollectionPage(props) { // scrollToComments={handleScrollToComments} // title={collection.name ? collection.name : ""} // collection_id={collection.id ? collection.id : 0}/> - // </Grid> + // </Grid> // <Grid container item xs={12} direction="row" justify="center" alignItems="center" style={{backgroundColor: '#f4f4f4'}}> // <Grid item xs={10}> // <ResourceList resources={ - // collection.collection_items ? + // collection.collection_items ? // collection.collection_items.map(i => { // return { // type: i.collectionable.object_type, @@ -204,5 +203,3 @@ const BreadCrumbsDiv = styled.div` padding: 10px; display: flex; `; - - diff --git a/src/Pages/PublicUserPage.js b/src/Pages/PublicUserPage.js index b197f082..2000c861 100644 --- a/src/Pages/PublicUserPage.js +++ b/src/Pages/PublicUserPage.js @@ -33,7 +33,7 @@ import TabRede from '../Components/TabPanels/PublicUserPageTabs/TabRede.js' import CheckDecagram from '../img/check-decagram-blue.svg' import ReportButton from '../Components/ReportButton.js' import {HeaderContainer, UserProfileContainer, CoverContainer, UserProfileInfoDiv, StyledTabs, CheckTeacherDiv, RodapeDiv, NavBarContentContainer, BackgroundDiv} from '../Components/TabPanels/StyledComponents.js' -import {axiosAllRequest} from '../Components/HelperFunctions/getAxiosConfig' +import {fetchAllRequest} from '../Components/HelperFunctions/getAxiosConfig' const RenderFollowContainer = (boolUserFollowed, id, followCount) => { return ( @@ -133,7 +133,7 @@ export default function PublicUserPage (props) { useEffect( () => { const urls = [`/users/${id}`, `/users/${id}/learning_objects`, `/users/${id}/collections`] - axiosAllRequest(urls, handleSuccess, (error) => {console.log(error)}) + fetchAllRequest(urls, handleSuccess, (error) => {console.log(error)}) }, []) /*---------------------------------------------------------*/ -- GitLab