From 5b7b6e88e154eeca46eed84cea1b8ac3b5c45a64 Mon Sep 17 00:00:00 2001 From: Albin Henriksson <albhe428@student.liu.se> Date: Sun, 25 Apr 2021 14:29:42 +0000 Subject: [PATCH] Resolve "Documentation for redux" --- client/src/actions/cities.ts | 5 +++++ client/src/actions/competitionLogin.ts | 5 +++++ client/src/actions/competitions.ts | 7 +++++++ client/src/actions/editor.ts | 6 ++++++ client/src/actions/presentation.ts | 6 ++++++ client/src/actions/roles.ts | 5 +++++ client/src/actions/searchUser.ts | 6 ++++++ client/src/actions/statistics.ts | 5 +++++ client/src/actions/types.ts | 4 ++++ client/src/actions/typesAction.ts | 5 +++++ client/src/actions/user.ts | 7 +++++++ 11 files changed, 61 insertions(+) diff --git a/client/src/actions/cities.ts b/client/src/actions/cities.ts index 594a43c4..efdb8c1d 100644 --- a/client/src/actions/cities.ts +++ b/client/src/actions/cities.ts @@ -1,7 +1,12 @@ +/* +This file handles actions for the cities redux state +*/ + import axios from 'axios' import { AppDispatch } from './../store' import Types from './types' +// Action creator to get all cities from api and send appropriate actions to reducer export const getCities = () => async (dispatch: AppDispatch) => { await axios .get('/api/misc/cities') diff --git a/client/src/actions/competitionLogin.ts b/client/src/actions/competitionLogin.ts index ff177a2b..093abdb8 100644 --- a/client/src/actions/competitionLogin.ts +++ b/client/src/actions/competitionLogin.ts @@ -1,9 +1,14 @@ +/* +This file handles actions for the competitionLogin redux state +*/ + import axios from 'axios' import { History } from 'history' import { AppDispatch } from '../store' import { AccountLoginModel } from './../interfaces/FormModels' import Types from './types' +// Action creator to attempt to login with competition code export const loginCompetition = (code: string, history: History) => async (dispatch: AppDispatch) => { dispatch({ type: Types.LOADING_COMPETITION_LOGIN }) await axios diff --git a/client/src/actions/competitions.ts b/client/src/actions/competitions.ts index 1a9d789c..87b2b26b 100644 --- a/client/src/actions/competitions.ts +++ b/client/src/actions/competitions.ts @@ -1,8 +1,13 @@ +/* +This file handles actions for the competitions redux state +*/ + import axios from 'axios' import { CompetitionFilterParams } from '../interfaces/FilterParams' import { AppDispatch, RootState } from './../store' import Types from './types' +// Get all competitions using filterParams from current state export const getCompetitions = () => async (dispatch: AppDispatch, getState: () => RootState) => { const currentParams: CompetitionFilterParams = getState().competitions.filterParams // Send params in snake-case for api @@ -34,6 +39,8 @@ export const getCompetitions = () => async (dispatch: AppDispatch, getState: () console.log(err) }) } + +// Dispatch action to set filter params export const setFilterParams = (params: CompetitionFilterParams) => (dispatch: AppDispatch) => { dispatch({ type: Types.SET_COMPETITIONS_FILTER_PARAMS, payload: params }) } diff --git a/client/src/actions/editor.ts b/client/src/actions/editor.ts index 45fbce98..db688dcb 100644 --- a/client/src/actions/editor.ts +++ b/client/src/actions/editor.ts @@ -1,7 +1,12 @@ +/* +This file handles actions for the editor redux state +*/ + import axios from 'axios' import { AppDispatch, RootState } from './../store' import Types from './types' +// Save competition in editor state from input id export const getEditorCompetition = (id: string) => async (dispatch: AppDispatch, getState: () => RootState) => { await axios .get(`/api/competitions/${id}`) @@ -19,6 +24,7 @@ export const getEditorCompetition = (id: string) => async (dispatch: AppDispatch }) } +// Set currentSlideId in editor state export const setEditorSlideId = (id: number) => (dispatch: AppDispatch) => { dispatch({ type: Types.SET_EDITOR_SLIDE_ID, diff --git a/client/src/actions/presentation.ts b/client/src/actions/presentation.ts index 97c611df..9e7881d8 100644 --- a/client/src/actions/presentation.ts +++ b/client/src/actions/presentation.ts @@ -1,9 +1,14 @@ +/* +This file handles actions for the presentation redux state +*/ + import axios from 'axios' import { Slide } from '../interfaces/ApiModels' import { Timer } from '../interfaces/Timer' import store, { AppDispatch } from './../store' import Types from './types' +// Save competition in presentation state from input id export const getPresentationCompetition = (id: string) => async (dispatch: AppDispatch) => { await axios .get(`/api/competitions/${id}`) @@ -18,6 +23,7 @@ export const getPresentationCompetition = (id: string) => async (dispatch: AppDi }) } +// Get all teams from current presentation competition export const getPresentationTeams = (id: string) => async (dispatch: AppDispatch) => { await axios .get(`/api/competitions/${id}/teams`) diff --git a/client/src/actions/roles.ts b/client/src/actions/roles.ts index 19a148c7..3f27d3a8 100644 --- a/client/src/actions/roles.ts +++ b/client/src/actions/roles.ts @@ -1,7 +1,12 @@ +/* +This file handles actions for the roles redux state +*/ + import axios from 'axios' import { AppDispatch } from './../store' import Types from './types' +// Get all roles and dispatch action to save them to roles state export const getRoles = () => async (dispatch: AppDispatch) => { await axios .get('/api/misc/roles') diff --git a/client/src/actions/searchUser.ts b/client/src/actions/searchUser.ts index a3ea55c7..c47ee9f3 100644 --- a/client/src/actions/searchUser.ts +++ b/client/src/actions/searchUser.ts @@ -1,8 +1,13 @@ +/* +This file handles actions for the searchUser redux state +*/ + import axios from 'axios' import { UserFilterParams } from '../interfaces/FilterParams' import { AppDispatch, RootState } from './../store' import Types from './types' +// Get all users using current filterParams in searchUser state export const getSearchUsers = () => async (dispatch: AppDispatch, getState: () => RootState) => { const currentParams: UserFilterParams = getState().searchUsers.filterParams // Send params in snake-case for api @@ -34,6 +39,7 @@ export const getSearchUsers = () => async (dispatch: AppDispatch, getState: () = console.log(err) }) } + export const setFilterParams = (params: UserFilterParams) => (dispatch: AppDispatch) => { dispatch({ type: Types.SET_SEARCH_USERS_FILTER_PARAMS, payload: params }) } diff --git a/client/src/actions/statistics.ts b/client/src/actions/statistics.ts index a32dce35..acde4316 100644 --- a/client/src/actions/statistics.ts +++ b/client/src/actions/statistics.ts @@ -1,7 +1,12 @@ +/* +This file handles actions for the statistics redux state +*/ + import axios from 'axios' import { AppDispatch } from './../store' import Types from './types' +// Get all statistics and dispatch actions to save them to statistics state export const getStatistics = () => async (dispatch: AppDispatch) => { await axios .get('/api/misc/statistics') diff --git a/client/src/actions/types.ts b/client/src/actions/types.ts index 512572bc..2e529a88 100644 --- a/client/src/actions/types.ts +++ b/client/src/actions/types.ts @@ -1,3 +1,7 @@ +/* +This file includes all redux action types +*/ + export default { LOADING_UI: 'LOADING_UI', LOADING_USER: 'LOADING_USER', diff --git a/client/src/actions/typesAction.ts b/client/src/actions/typesAction.ts index 32a212b0..b6e9c98a 100644 --- a/client/src/actions/typesAction.ts +++ b/client/src/actions/typesAction.ts @@ -1,7 +1,12 @@ +/* +This file handles actions for the types redux state +*/ + import axios from 'axios' import { AppDispatch } from './../store' import Types from './types' +// Get all types and save them to types state export const getTypes = () => async (dispatch: AppDispatch) => { await axios .get('/api/misc/types') diff --git a/client/src/actions/user.ts b/client/src/actions/user.ts index e2ad88ac..3448fa99 100644 --- a/client/src/actions/user.ts +++ b/client/src/actions/user.ts @@ -1,9 +1,14 @@ +/* +This file handles actions for the user redux state +*/ + import axios from 'axios' import { History } from 'history' import { AppDispatch } from '../store' import { AccountLoginModel } from './../interfaces/FormModels' import Types from './types' +// Attempt to log in user, dispatch correct actions and save jwt token to localStorage and axios auth header export const loginUser = (userData: AccountLoginModel, history: History) => async (dispatch: AppDispatch) => { dispatch({ type: Types.LOADING_UI }) await axios @@ -25,6 +30,7 @@ export const loginUser = (userData: AccountLoginModel, history: History) => asyn }) } +// Get data for user and save to user state export const getUserData = () => async (dispatch: AppDispatch) => { dispatch({ type: Types.LOADING_USER }) await axios @@ -40,6 +46,7 @@ export const getUserData = () => async (dispatch: AppDispatch) => { }) } +// Log out user and remove jwt token from local storage and axios export const logoutUser = () => async (dispatch: AppDispatch) => { localStorage.removeItem('token') await axios.post('/api/auth/logout').then(() => { -- GitLab