From d1e321f00c4329cc473628c57e74d84e2f52d6b0 Mon Sep 17 00:00:00 2001
From: Albin Henriksson <albhe428@student.liu.se>
Date: Fri, 23 Apr 2021 06:40:50 +0000
Subject: [PATCH] Resolve "Remove proxy"

---
 client/package.json                           |  2 +-
 client/src/actions/cities.ts                  |  2 +-
 client/src/actions/competitions.ts            |  2 +-
 client/src/actions/editor.ts                  |  2 +-
 client/src/actions/presentation.ts            |  4 ++--
 client/src/actions/roles.ts                   |  2 +-
 client/src/actions/searchUser.ts              |  2 +-
 client/src/actions/typesAction.ts             |  2 +-
 client/src/actions/user.ts                    |  6 ++---
 .../admin/competitions/AddCompetition.tsx     |  2 +-
 .../admin/competitions/CompetitionManager.tsx |  4 ++--
 client/src/pages/admin/regions/AddRegion.tsx  |  2 +-
 client/src/pages/admin/regions/Regions.tsx    |  4 ++--
 client/src/pages/admin/users/AddUser.tsx      |  2 +-
 client/src/pages/admin/users/EditUser.tsx     |  4 ++--
 .../PresentationEditorPage.test.tsx           |  2 +-
 .../PresentationEditorPage.tsx                |  6 ++---
 .../components/CompetitionSettings.tsx        |  8 +++----
 .../components/RndComponent.tsx               |  4 ++--
 .../components/SlideSettings.tsx              | 23 +++++++++++--------
 .../components/TextComponentEdit.tsx          |  4 ++--
 client/src/utils/checkAuthentication.ts       |  2 +-
 22 files changed, 47 insertions(+), 44 deletions(-)

diff --git a/client/package.json b/client/package.json
index 7c354ece..8733d1d4 100644
--- a/client/package.json
+++ b/client/package.json
@@ -96,5 +96,5 @@
       "html"
     ]
   },
-  "proxy": "http://localhost:5000/api/"
+  "proxy": "http://localhost:5000/"
 }
diff --git a/client/src/actions/cities.ts b/client/src/actions/cities.ts
index 9226aee5..594a43c4 100644
--- a/client/src/actions/cities.ts
+++ b/client/src/actions/cities.ts
@@ -4,7 +4,7 @@ import Types from './types'
 
 export const getCities = () => async (dispatch: AppDispatch) => {
   await axios
-    .get('/misc/cities')
+    .get('/api/misc/cities')
     .then((res) => {
       dispatch({
         type: Types.SET_CITIES,
diff --git a/client/src/actions/competitions.ts b/client/src/actions/competitions.ts
index 7d248e46..1a9d789c 100644
--- a/client/src/actions/competitions.ts
+++ b/client/src/actions/competitions.ts
@@ -15,7 +15,7 @@ export const getCompetitions = () => async (dispatch: AppDispatch, getState: ()
     year: currentParams.year,
   }
   await axios
-    .get('/competitions/search', { params })
+    .get('/api/competitions/search', { params })
     .then((res) => {
       dispatch({
         type: Types.SET_COMPETITIONS,
diff --git a/client/src/actions/editor.ts b/client/src/actions/editor.ts
index 903dfa7b..45fbce98 100644
--- a/client/src/actions/editor.ts
+++ b/client/src/actions/editor.ts
@@ -4,7 +4,7 @@ import Types from './types'
 
 export const getEditorCompetition = (id: string) => async (dispatch: AppDispatch, getState: () => RootState) => {
   await axios
-    .get(`/competitions/${id}`)
+    .get(`/api/competitions/${id}`)
     .then((res) => {
       dispatch({
         type: Types.SET_EDITOR_COMPETITION,
diff --git a/client/src/actions/presentation.ts b/client/src/actions/presentation.ts
index c967131f..97c611df 100644
--- a/client/src/actions/presentation.ts
+++ b/client/src/actions/presentation.ts
@@ -6,7 +6,7 @@ import Types from './types'
 
 export const getPresentationCompetition = (id: string) => async (dispatch: AppDispatch) => {
   await axios
-    .get(`/competitions/${id}`)
+    .get(`/api/competitions/${id}`)
     .then((res) => {
       dispatch({
         type: Types.SET_PRESENTATION_COMPETITION,
@@ -20,7 +20,7 @@ export const getPresentationCompetition = (id: string) => async (dispatch: AppDi
 
 export const getPresentationTeams = (id: string) => async (dispatch: AppDispatch) => {
   await axios
-    .get(`/competitions/${id}/teams`)
+    .get(`/api/competitions/${id}/teams`)
     .then((res) => {
       dispatch({
         type: Types.SET_PRESENTATION_TEAMS,
diff --git a/client/src/actions/roles.ts b/client/src/actions/roles.ts
index 0160353b..19a148c7 100644
--- a/client/src/actions/roles.ts
+++ b/client/src/actions/roles.ts
@@ -4,7 +4,7 @@ import Types from './types'
 
 export const getRoles = () => async (dispatch: AppDispatch) => {
   await axios
-    .get('/misc/roles')
+    .get('/api/misc/roles')
     .then((res) => {
       dispatch({
         type: Types.SET_ROLES,
diff --git a/client/src/actions/searchUser.ts b/client/src/actions/searchUser.ts
index c6211056..a3ea55c7 100644
--- a/client/src/actions/searchUser.ts
+++ b/client/src/actions/searchUser.ts
@@ -15,7 +15,7 @@ export const getSearchUsers = () => async (dispatch: AppDispatch, getState: () =
     email: currentParams.email,
   }
   await axios
-    .get('/users/search', { params })
+    .get('/api/users/search', { params })
     .then((res) => {
       dispatch({
         type: Types.SET_SEARCH_USERS,
diff --git a/client/src/actions/typesAction.ts b/client/src/actions/typesAction.ts
index 4fcde4f5..32a212b0 100644
--- a/client/src/actions/typesAction.ts
+++ b/client/src/actions/typesAction.ts
@@ -4,7 +4,7 @@ import Types from './types'
 
 export const getTypes = () => async (dispatch: AppDispatch) => {
   await axios
-    .get('/misc/types')
+    .get('/api/misc/types')
     .then((res) => {
       dispatch({
         type: Types.SET_TYPES,
diff --git a/client/src/actions/user.ts b/client/src/actions/user.ts
index 371dcaeb..e2ad88ac 100644
--- a/client/src/actions/user.ts
+++ b/client/src/actions/user.ts
@@ -7,7 +7,7 @@ import Types from './types'
 export const loginUser = (userData: AccountLoginModel, history: History) => async (dispatch: AppDispatch) => {
   dispatch({ type: Types.LOADING_UI })
   await axios
-    .post('/auth/login', userData)
+    .post('/api/auth/login', userData)
     .then((res) => {
       const token = `Bearer ${res.data.access_token}`
       localStorage.setItem('token', token) //setting token to local storage
@@ -28,7 +28,7 @@ export const loginUser = (userData: AccountLoginModel, history: History) => asyn
 export const getUserData = () => async (dispatch: AppDispatch) => {
   dispatch({ type: Types.LOADING_USER })
   await axios
-    .get('/users')
+    .get('/api/users')
     .then((res) => {
       dispatch({
         type: Types.SET_USER,
@@ -42,7 +42,7 @@ export const getUserData = () => async (dispatch: AppDispatch) => {
 
 export const logoutUser = () => async (dispatch: AppDispatch) => {
   localStorage.removeItem('token')
-  await axios.post('/auth/logout').then(() => {
+  await axios.post('/api/auth/logout').then(() => {
     delete axios.defaults.headers.common['Authorization']
     dispatch({
       type: Types.SET_UNAUTHENTICATED,
diff --git a/client/src/pages/admin/competitions/AddCompetition.tsx b/client/src/pages/admin/competitions/AddCompetition.tsx
index 0ce9a6ff..6053f2f8 100644
--- a/client/src/pages/admin/competitions/AddCompetition.tsx
+++ b/client/src/pages/admin/competitions/AddCompetition.tsx
@@ -63,7 +63,7 @@ const AddCompetition: React.FC = (props: any) => {
     }
 
     await axios
-      .post('/competitions', params) // send to database
+      .post('/api/competitions', params) // send to database
       .then(() => {
         actions.resetForm() // reset the form
         setAnchorEl(null)
diff --git a/client/src/pages/admin/competitions/CompetitionManager.tsx b/client/src/pages/admin/competitions/CompetitionManager.tsx
index 929d3145..83f399b9 100644
--- a/client/src/pages/admin/competitions/CompetitionManager.tsx
+++ b/client/src/pages/admin/competitions/CompetitionManager.tsx
@@ -82,7 +82,7 @@ const CompetitionManager: React.FC = (props: any) => {
   const handleDeleteCompetition = async () => {
     if (activeId) {
       await axios
-        .delete(`/competitions/${activeId}`)
+        .delete(`/api/competitions/${activeId}`)
         .then(() => {
           setAnchorEl(null)
           dispatch(getCompetitions()) // refresh the competition list
@@ -101,7 +101,7 @@ const CompetitionManager: React.FC = (props: any) => {
   const handleDuplicateCompetition = async () => {
     if (activeId) {
       await axios
-        .post(`/competitions/${activeId}/copy`)
+        .post(`/api/competitions/${activeId}/copy`)
         .then(() => {
           setAnchorEl(null)
           dispatch(getCompetitions())
diff --git a/client/src/pages/admin/regions/AddRegion.tsx b/client/src/pages/admin/regions/AddRegion.tsx
index c8ae412e..b0096138 100644
--- a/client/src/pages/admin/regions/AddRegion.tsx
+++ b/client/src/pages/admin/regions/AddRegion.tsx
@@ -51,7 +51,7 @@ const AddRegion: React.FC = (props: any) => {
       name: values.model.name,
     }
     await axios
-      .post('/misc/cities', params)
+      .post('/api/misc/cities', params)
       .then(() => {
         actions.resetForm()
         dispatch(getCities())
diff --git a/client/src/pages/admin/regions/Regions.tsx b/client/src/pages/admin/regions/Regions.tsx
index eb79575e..436da6f6 100644
--- a/client/src/pages/admin/regions/Regions.tsx
+++ b/client/src/pages/admin/regions/Regions.tsx
@@ -45,7 +45,7 @@ const RegionManager: React.FC = (props: any) => {
   const handleDeleteCity = async () => {
     if (activeId) {
       await axios
-        .delete(`/misc/cities/${activeId}`)
+        .delete(`/api/misc/cities/${activeId}`)
         .then(() => {
           setAnchorEl(null)
           dispatch(getCities())
@@ -63,7 +63,7 @@ const RegionManager: React.FC = (props: any) => {
 
   const handleAddCity = async () => {
     await axios
-      .post(`/misc/cities`, { name: newCity })
+      .post(`/api/misc/cities`, { name: newCity })
       .then(() => {
         setAnchorEl(null)
         dispatch(getCities())
diff --git a/client/src/pages/admin/users/AddUser.tsx b/client/src/pages/admin/users/AddUser.tsx
index d58a5d5d..9f1511ea 100644
--- a/client/src/pages/admin/users/AddUser.tsx
+++ b/client/src/pages/admin/users/AddUser.tsx
@@ -59,7 +59,7 @@ const AddUser: React.FC = (props: any) => {
       role_id: selectedRole?.id as number,
     }
     await axios
-      .post('/auth/signup', params)
+      .post('/api/auth/signup', params)
       .then(() => {
         actions.resetForm()
         setAnchorEl(null)
diff --git a/client/src/pages/admin/users/EditUser.tsx b/client/src/pages/admin/users/EditUser.tsx
index 7db5aeec..9b4a5d1b 100644
--- a/client/src/pages/admin/users/EditUser.tsx
+++ b/client/src/pages/admin/users/EditUser.tsx
@@ -110,7 +110,7 @@ const EditUser = ({ user }: UserIdProps) => {
   const handleDeleteUsers = async () => {
     setOpen(false)
     await axios
-      .delete(`/auth/delete/${user.id}`)
+      .delete(`/api/auth/delete/${user.id}`)
       .then(() => {
         setAnchorEl(null)
         dispatch(getSearchUsers())
@@ -141,7 +141,7 @@ const EditUser = ({ user }: UserIdProps) => {
       req['role_id'] = params.role_id
     }
     await axios
-      .put('/users/' + user.id, req)
+      .put('/api/users/' + user.id, req)
       .then((res) => {
         setAnchorEl(null)
         dispatch(getSearchUsers())
diff --git a/client/src/pages/presentationEditor/PresentationEditorPage.test.tsx b/client/src/pages/presentationEditor/PresentationEditorPage.test.tsx
index 956d0b72..c645724e 100644
--- a/client/src/pages/presentationEditor/PresentationEditorPage.test.tsx
+++ b/client/src/pages/presentationEditor/PresentationEditorPage.test.tsx
@@ -28,7 +28,7 @@ it('renders presentation editor', () => {
     },
   }
   ;(mockedAxios.get as jest.Mock).mockImplementation((path: string, params?: any) => {
-    if (path.startsWith('/competitions')) return Promise.resolve(competitionRes)
+    if (path.startsWith('/api/competitions')) return Promise.resolve(competitionRes)
     return Promise.resolve(citiesRes)
   })
   render(
diff --git a/client/src/pages/presentationEditor/PresentationEditorPage.tsx b/client/src/pages/presentationEditor/PresentationEditorPage.tsx
index 4087d6c7..da18cd52 100644
--- a/client/src/pages/presentationEditor/PresentationEditorPage.tsx
+++ b/client/src/pages/presentationEditor/PresentationEditorPage.tsx
@@ -104,7 +104,7 @@ const PresentationEditorPage: React.FC = () => {
   }
 
   const createNewSlide = async () => {
-    await axios.post(`/competitions/${id}/slides`, { title: 'new slide' })
+    await axios.post(`/api/competitions/${id}/slides`, { title: 'new slide' })
     dispatch(getEditorCompetition(id))
   }
 
@@ -128,13 +128,13 @@ const PresentationEditorPage: React.FC = () => {
   }
 
   const handleRemoveSlide = async () => {
-    await axios.delete(`/competitions/${id}/slides/${contextState.slideId}`)
+    await axios.delete(`/api/competitions/${id}/slides/${contextState.slideId}`)
     dispatch(getEditorCompetition(id))
     setContextState(initialState)
   }
 
   const handleDuplicateSlide = async () => {
-    await axios.post(`/competitions/${id}/slides/${contextState.slideId}/copy`)
+    await axios.post(`/api/competitions/${id}/slides/${contextState.slideId}/copy`)
     dispatch(getEditorCompetition(id))
     setContextState(initialState)
   }
diff --git a/client/src/pages/presentationEditor/components/CompetitionSettings.tsx b/client/src/pages/presentationEditor/components/CompetitionSettings.tsx
index 75d41840..53c2ecdb 100644
--- a/client/src/pages/presentationEditor/components/CompetitionSettings.tsx
+++ b/client/src/pages/presentationEditor/components/CompetitionSettings.tsx
@@ -77,7 +77,7 @@ const CompetitionSettings: React.FC = () => {
   const competition = useAppSelector((state) => state.editor.competition)
   const updateCompetitionName = async (event: React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>) => {
     await axios
-      .put(`/competitions/${id}`, { name: event.target.value })
+      .put(`/api/competitions/${id}`, { name: event.target.value })
       .then(() => {
         dispatch(getEditorCompetition(id))
       })
@@ -87,7 +87,7 @@ const CompetitionSettings: React.FC = () => {
   const cities = useAppSelector((state) => state.cities.cities)
   const updateCompetitionCity = async (city: City) => {
     await axios
-      .put(`/competitions/${id}`, { city_id: city.id })
+      .put(`/api/competitions/${id}`, { city_id: city.id })
       .then(() => {
         dispatch(getEditorCompetition(id))
       })
@@ -104,7 +104,7 @@ const CompetitionSettings: React.FC = () => {
 
   const removeTeam = async (tid: number) => {
     await axios
-      .delete(`/competitions/${id}/teams/${tid}`)
+      .delete(`/api/competitions/${id}/teams/${tid}`)
       .then(() => {
         dispatch(getEditorCompetition(id))
       })
@@ -113,7 +113,7 @@ const CompetitionSettings: React.FC = () => {
   const addTeam = async () => {
     setAddTeamOpen(false)
     await axios
-      .post(`/competitions/${id}/teams`, { name: selectedTeamName })
+      .post(`/api/competitions/${id}/teams`, { name: selectedTeamName })
       .then(() => {
         dispatch(getEditorCompetition(id))
       })
diff --git a/client/src/pages/presentationEditor/components/RndComponent.tsx b/client/src/pages/presentationEditor/components/RndComponent.tsx
index 890e5160..6302d3fc 100644
--- a/client/src/pages/presentationEditor/components/RndComponent.tsx
+++ b/client/src/pages/presentationEditor/components/RndComponent.tsx
@@ -20,13 +20,13 @@ const RndComponent = ({ component }: ImageComponentProps) => {
   const competitionId = useAppSelector((state) => state.editor.competition.id)
   const slideId = useAppSelector((state) => state.editor.activeSlideId)
   const handleUpdatePos = (pos: Position) => {
-    axios.put(`/competitions/${competitionId}/slides/${slideId}/components/${component.id}`, {
+    axios.put(`/api/competitions/${competitionId}/slides/${slideId}/components/${component.id}`, {
       x: pos.x,
       y: pos.y,
     })
   }
   const handleUpdateSize = (size: Size) => {
-    axios.put(`/competitions/${competitionId}/slides/${slideId}/components/${component.id}`, {
+    axios.put(`/api/competitions/${competitionId}/slides/${slideId}/components/${component.id}`, {
       w: size.w,
       h: size.h,
     })
diff --git a/client/src/pages/presentationEditor/components/SlideSettings.tsx b/client/src/pages/presentationEditor/components/SlideSettings.tsx
index 7cc78b34..85fe3cc0 100644
--- a/client/src/pages/presentationEditor/components/SlideSettings.tsx
+++ b/client/src/pages/presentationEditor/components/SlideSettings.tsx
@@ -133,7 +133,7 @@ const SlideSettings: React.FC = () => {
         if (selectedSlideType === 0) {
           // Change slide type from a question type to information
           await axios
-            .delete(`/competitions/${id}/slides/${activeSlide.id}/questions/${activeSlide.questions[0].id}`)
+            .delete(`/api/competitions/${id}/slides/${activeSlide.id}/questions/${activeSlide.questions[0].id}`)
             .then(() => {
               dispatch(getEditorCompetition(id))
             })
@@ -141,10 +141,10 @@ const SlideSettings: React.FC = () => {
         } else {
           // Change slide type from question type to another question type
           await axios
-            .delete(`/competitions/${id}/slides/${activeSlide.id}/questions/${activeSlide.questions[0].id}`)
+            .delete(`/api/competitions/${id}/slides/${activeSlide.id}/questions/${activeSlide.questions[0].id}`)
             .catch(console.log)
           await axios
-            .post(`/competitions/${id}/slides/${activeSlide.id}/questions`, {
+            .post(`/api/competitions/${id}/slides/${activeSlide.id}/questions`, {
               name: 'Ny fråga',
               total_score: 0,
               type_id: selectedSlideType,
@@ -158,7 +158,7 @@ const SlideSettings: React.FC = () => {
       } else if (selectedSlideType !== 0) {
         // Change slide type from information to a question type
         await axios
-          .post(`/competitions/${id}/slides/${activeSlide.id}/questions`, {
+          .post(`/api/competitions/${id}/slides/${activeSlide.id}/questions`, {
             name: 'Ny fråga',
             total_score: 0,
             type_id: selectedSlideType,
@@ -208,10 +208,13 @@ const SlideSettings: React.FC = () => {
   const addAlternative = async () => {
     if (activeSlide && activeSlide.questions[0]) {
       await axios
-        .post(`/competitions/${id}/slides/${activeSlide?.id}/questions/${activeSlide?.questions[0].id}/alternatives`, {
-          text: '',
-          value: 0,
-        })
+        .post(
+          `/api/competitions/${id}/slides/${activeSlide?.id}/questions/${activeSlide?.questions[0].id}/alternatives`,
+          {
+            text: '',
+            value: 0,
+          }
+        )
         .then(() => {
           dispatch(getEditorCompetition(id))
         })
@@ -237,7 +240,7 @@ const SlideSettings: React.FC = () => {
 
   const handleAddText = async () => {
     if (activeSlide) {
-      await axios.post(`/competitions/${id}/slides/${activeSlide?.id}/components`, {
+      await axios.post(`/api/competitions/${id}/slides/${activeSlide?.id}/components`, {
         type_id: 1,
         data: { text: 'Ny text' },
         w: 315,
@@ -261,7 +264,7 @@ const SlideSettings: React.FC = () => {
     setTimer(+event.target.value)
     if (activeSlide) {
       await axios
-        .put(`/competitions/${id}/slides/${activeSlide.id}`, { timer: event.target.value })
+        .put(`/api/competitions/${id}/slides/${activeSlide.id}`, { timer: event.target.value })
         .then(() => {
           dispatch(getEditorCompetition(id))
         })
diff --git a/client/src/pages/presentationEditor/components/TextComponentEdit.tsx b/client/src/pages/presentationEditor/components/TextComponentEdit.tsx
index e0f0d5b4..c347bd5b 100644
--- a/client/src/pages/presentationEditor/components/TextComponentEdit.tsx
+++ b/client/src/pages/presentationEditor/components/TextComponentEdit.tsx
@@ -37,7 +37,7 @@ const TextComponentEdit = ({ component }: ImageComponentProps) => {
     setTimerHandle(
       window.setTimeout(async () => {
         console.log('Content was updated on server. id: ', component.id)
-        await axios.put(`/competitions/${competitionId}/slides/${activeSlideId}/components/${component.id}`, {
+        await axios.put(`/api/competitions/${competitionId}/slides/${activeSlideId}/components/${component.id}`, {
           data: { ...component.data, text: a },
         })
         dispatch(getEditorCompetition(id))
@@ -46,7 +46,7 @@ const TextComponentEdit = ({ component }: ImageComponentProps) => {
   }
 
   const handleDeleteText = async (componentId: number) => {
-    await axios.delete(`/competitions/${id}/slides/${activeSlideId}/components/${componentId}`)
+    await axios.delete(`/api/competitions/${id}/slides/${activeSlideId}/components/${componentId}`)
     dispatch(getEditorCompetition(id))
   }
 
diff --git a/client/src/utils/checkAuthentication.ts b/client/src/utils/checkAuthentication.ts
index a782ea10..9225aa29 100644
--- a/client/src/utils/checkAuthentication.ts
+++ b/client/src/utils/checkAuthentication.ts
@@ -16,7 +16,7 @@ export const CheckAuthentication = async () => {
       axios.defaults.headers.common['Authorization'] = authToken
       store.dispatch({ type: Types.LOADING_USER })
       await axios
-        .get('/users')
+        .get('/api/users')
         .then((res) => {
           store.dispatch({ type: Types.SET_AUTHENTICATED })
           store.dispatch({
-- 
GitLab