-
Notifications
You must be signed in to change notification settings - Fork 51
/
review-actions.js
72 lines (65 loc) · 2.28 KB
/
review-actions.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// import { createAction } from 'redux-actions'
import { CALL_API } from 'redux-api-middleware'
import {
getJsonHeaders,
buildAPIRequest
} from './common-actions'
import { apiUrl } from '../config'
export const GET_ALL_CRITERIA_REQUEST = 'GET_ALL_CRITERIA_REQUEST'
export const GET_ALL_CRITERIA_SUCCESS = 'GET_ALL_CRITERIA_SUCCESS'
export const GET_ALL_CRITERIA_FAILURE = 'GET_ALL_CRITERIA_FAILURE'
export function fetchAllCriteria () {
const endpoint = `${apiUrl}/review`
const apiTypes = [
GET_ALL_CRITERIA_REQUEST,
GET_ALL_CRITERIA_SUCCESS,
GET_ALL_CRITERIA_FAILURE]
return {
[CALL_API]: buildAPIRequest(endpoint, 'GET', getJsonHeaders(), apiTypes)
}
}
export const ADD_CRITERION_REQUEST = 'ADD_CRITERION_REQUEST'
export const ADD_CRITERION_SUCCESS = 'ADD_CRITERION_SUCCESS'
export const ADD_CRITERION_FAILURE = 'ADD_CRITERION_FAILURE'
export function addNewCriterion (criterion) {
const endpoint = `${apiUrl}/review/criteria`
const apiTypes = [
ADD_CRITERION_REQUEST,
ADD_CRITERION_SUCCESS,
ADD_CRITERION_FAILURE]
const body = {
...criterion,
editable: criterion.isEditable
}
return {
[CALL_API]: buildAPIRequest(endpoint, 'POST', getJsonHeaders(), apiTypes,
JSON.stringify(body))
}
}
export const DELETE_CRITERION_REQUEST = 'DELETE_CRITERION_REQUEST'
export const DELETE_CRITERION_SUCCESS = 'DELETE_CRITERION_SUCCESS'
export const DELETE_CRITERION_FAILURE = 'DELETE_CRITERION_FAILURE'
export function removeCriterion (id) {
const endpoint = `${apiUrl}/review/criteria/${id}`
const types = [DELETE_CRITERION_REQUEST, DELETE_CRITERION_SUCCESS,
DELETE_CRITERION_FAILURE]
return {
[CALL_API]: buildAPIRequest(endpoint, 'DELETE', getJsonHeaders(), types)
}
}
export const EDIT_CRITERION_REQUEST = 'EDIT_CRITERION_REQUEST'
export const EDIT_CRITERION_SUCCESS = 'EDIT_CRITERION_SUCCESS'
export const EDIT_CRITERION_FAILURE = 'EDIT_CRITERION_FAILURE'
export function editCriterion (criterion) {
const types = [EDIT_CRITERION_REQUEST, EDIT_CRITERION_SUCCESS,
EDIT_CRITERION_FAILURE]
const endpoint = `${apiUrl}/review/criteria/${criterion.id}`
const body = {
...criterion,
editable: criterion.isEditable
}
return {
[CALL_API]: buildAPIRequest(endpoint, 'PUT', getJsonHeaders(), types,
JSON.stringify(body))
}
}