Redux -> add all Slices / AsyncThunks / storage elements + create code in abstractServica & modelCrudAT
parent
10ba48fd08
commit
bea0db148c
|
|
@ -0,0 +1,103 @@
|
||||||
|
import axios from 'axios'
|
||||||
|
|
||||||
|
|
||||||
|
const APIAddress = 'http://localhost:9090'
|
||||||
|
|
||||||
|
let defaultBody = ''
|
||||||
|
|
||||||
|
const _getList = async (endpoint, token) => {
|
||||||
|
return await responseAbstract(
|
||||||
|
endpoint,
|
||||||
|
'GET',
|
||||||
|
token,
|
||||||
|
defaultBody
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const _getOne = async (endpoint, objectId, token) => {
|
||||||
|
return await responseAbstract(
|
||||||
|
endpoint + '/' + objectId,
|
||||||
|
'GET',
|
||||||
|
token,
|
||||||
|
defaultBody
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const _post = async (endpoint, body, token) => {
|
||||||
|
return await responseAbstract(
|
||||||
|
endpoint,
|
||||||
|
'POST',
|
||||||
|
token,
|
||||||
|
body
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const _patch = async (endpoint, objectId, body, token) => {
|
||||||
|
return await responseAbstract(
|
||||||
|
endpoint + '/' + objectId,
|
||||||
|
'PATCH',
|
||||||
|
token,
|
||||||
|
body
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const _put = async (endpoint, objectId, body, token) => {
|
||||||
|
return await responseAbstract(
|
||||||
|
endpoint + '/' + objectId,
|
||||||
|
'PUT',
|
||||||
|
token,
|
||||||
|
body
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const _delete = async (endpoint, objectId, token) => {
|
||||||
|
return await responseAbstract(
|
||||||
|
endpoint + '/' + objectId,
|
||||||
|
'DELETE',
|
||||||
|
token,
|
||||||
|
defaultBody
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const responseAbstract = async (endpoint, method, token, body) => {
|
||||||
|
let response = await axios(
|
||||||
|
headerBuilder(
|
||||||
|
APIAddress + endpoint,
|
||||||
|
method,
|
||||||
|
token,
|
||||||
|
body,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return response
|
||||||
|
}
|
||||||
|
|
||||||
|
const headerBuilder = (url, method, token, body) => {
|
||||||
|
let headers = {
|
||||||
|
url: url,
|
||||||
|
method: method,
|
||||||
|
headers: {
|
||||||
|
'Authorization': token,
|
||||||
|
'accept': 'application/json',
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (method === 'PUT' || method === 'POST' || method === 'PATCH') {
|
||||||
|
headers = Object.assign({}, headers, {
|
||||||
|
data: JSON.stringify(body),
|
||||||
|
withCredentials: true,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return headers
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
APIAddress,
|
||||||
|
_getList,
|
||||||
|
_getOne,
|
||||||
|
_post,
|
||||||
|
_put,
|
||||||
|
_patch,
|
||||||
|
_delete
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
import { createAsyncThunk } from '@reduxjs/toolkit'
|
||||||
|
import abstractService from './abstractService'
|
||||||
|
|
||||||
|
let endpoint = '/model'
|
||||||
|
|
||||||
|
|
||||||
|
const fetchGetAllModels = createAsyncThunk(
|
||||||
|
'model/fetchGetAllModels',
|
||||||
|
async (
|
||||||
|
token,
|
||||||
|
thunkAPI
|
||||||
|
) => {
|
||||||
|
return await abstractService._getList(endpoint, token)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param body:
|
||||||
|
* param token: base64 token,
|
||||||
|
* param id: model id
|
||||||
|
*/
|
||||||
|
const fetchGetOneModelAndDownload = createAsyncThunk(
|
||||||
|
'model/fetchGetAllModels',
|
||||||
|
async (
|
||||||
|
body,
|
||||||
|
thunkAPI
|
||||||
|
) => {
|
||||||
|
return await abstractService._getOne(
|
||||||
|
trueEndpoint,
|
||||||
|
body.id,
|
||||||
|
body.token
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param body:
|
||||||
|
* param token: base64 token,
|
||||||
|
* param file: document.querySelector('#file').files[0]
|
||||||
|
* param user_id: user id
|
||||||
|
*/
|
||||||
|
const fetchUploadModel = createAsyncThunk(
|
||||||
|
'model/fetchGetAllModels',
|
||||||
|
async (
|
||||||
|
body,
|
||||||
|
thunkAPI
|
||||||
|
) => {
|
||||||
|
let formData = FormData()
|
||||||
|
formData.append("blend", body.file)
|
||||||
|
return await abstractService._post(
|
||||||
|
trueEndpoint,
|
||||||
|
body,
|
||||||
|
body.token
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
export default {
|
||||||
|
fetchGetAllModels,
|
||||||
|
fetchGetOneModelAndDownload,
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue