add track Redux store && TODO -> complete track store
parent
6561a90f17
commit
553feb7c62
|
|
@ -0,0 +1,19 @@
|
||||||
|
import types from './types'
|
||||||
|
|
||||||
|
const getOne = item => ({
|
||||||
|
type: types.GET_ONE, item
|
||||||
|
})
|
||||||
|
|
||||||
|
const update = item => ({
|
||||||
|
type: types.UPDATE, item
|
||||||
|
})
|
||||||
|
|
||||||
|
const addRow = item => ({
|
||||||
|
type: types.ADD_ROW, item
|
||||||
|
})
|
||||||
|
|
||||||
|
export default ({
|
||||||
|
getOne,
|
||||||
|
update,
|
||||||
|
addRow
|
||||||
|
})
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
import trackReducer from './reducers'
|
||||||
|
export { default as trackTypes } from './types'
|
||||||
|
export { default as trackActions } from './actions'
|
||||||
|
|
||||||
|
export default trackReducer
|
||||||
|
|
@ -0,0 +1,76 @@
|
||||||
|
import AppService from '../../AppService'
|
||||||
|
|
||||||
|
import actions from './actions'
|
||||||
|
|
||||||
|
const trackEndpoint = 'track/'
|
||||||
|
const trackRowEndpoint = 'track-row/'
|
||||||
|
|
||||||
|
// Track CRUD
|
||||||
|
|
||||||
|
export const getOneTrack = ( id ) => async (dispatch) => {
|
||||||
|
return await AppService._getOne(
|
||||||
|
trackEndpoint + id + '/'
|
||||||
|
).then( response => {
|
||||||
|
dispatch( actions.getOne( response ) )
|
||||||
|
return response
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export const createTrack = async ( track, token ) => {
|
||||||
|
return await AppService._post(
|
||||||
|
trackEndpoint,
|
||||||
|
track,
|
||||||
|
token
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export const updateTrack = async ( id, track, token ) => {
|
||||||
|
return await AppService._patch(
|
||||||
|
trackEndpoint + id + '/',
|
||||||
|
track,
|
||||||
|
token
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export const deleteTrack = async ( id ) => {
|
||||||
|
return await AppService._delete(
|
||||||
|
trackEndpoint + id + '/',
|
||||||
|
token
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Track Row CRUD
|
||||||
|
|
||||||
|
export const getOneTrackRow = ( id ) => async (dispatch) => {
|
||||||
|
return await AppService._getOne(
|
||||||
|
trackRowEndpoint + id + '/'
|
||||||
|
).then( response => {
|
||||||
|
dispatch( actions.getOne( response ) )
|
||||||
|
return response
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export const createTrackRow = async ( track, token ) => {
|
||||||
|
return await AppService._post(
|
||||||
|
trackRowEndpoint,
|
||||||
|
track,
|
||||||
|
token
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export const updateTrackRow = async ( id, track, token ) => {
|
||||||
|
return await AppService._patch(
|
||||||
|
trackRowEndpoint + id + '/',
|
||||||
|
track,
|
||||||
|
token
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export const deleteTrackRow = async ( id ) => {
|
||||||
|
return await AppService._delete(
|
||||||
|
trackRowEndpoint + id + '/',
|
||||||
|
token
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Track Ratings CRUD
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
import types from './types'
|
||||||
|
|
||||||
|
const INITIAL_STATE = {
|
||||||
|
id: -1,
|
||||||
|
album_id: -1,
|
||||||
|
user_id: -1,
|
||||||
|
title: '',
|
||||||
|
description: '',
|
||||||
|
text: '',
|
||||||
|
image: '',
|
||||||
|
audio: '',
|
||||||
|
url_code: '',
|
||||||
|
track_rows: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const trackReducer = ( state = INITIAL_STATE, action ) => {
|
||||||
|
switch(action.type) {
|
||||||
|
case types.GET_ONE:
|
||||||
|
return {
|
||||||
|
id: action.item.id,
|
||||||
|
album_id: action.item.album_id,
|
||||||
|
user_id: action.item.user_id,
|
||||||
|
title: action.item.title,
|
||||||
|
description: action.item.description,
|
||||||
|
text: action.item.text,
|
||||||
|
image: action.item.image,
|
||||||
|
audio: action.item.audio,
|
||||||
|
url_code: action.item.url_code,
|
||||||
|
track_rows: action.item.track_rows
|
||||||
|
}
|
||||||
|
case types.UPDATE:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
id: action.item.id,
|
||||||
|
album_id: action.item.album_id,
|
||||||
|
user_id: action.item.user_id,
|
||||||
|
title: action.item.title,
|
||||||
|
description: action.item.description,
|
||||||
|
text: action.item.text,
|
||||||
|
image: action.item.image,
|
||||||
|
audio: action.item.audio,
|
||||||
|
url_code: action.item.url_code,
|
||||||
|
}
|
||||||
|
case types.ADD_ROW:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
track_rows: [ ...state.track_rows, action.item ]
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default trackReducer
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
const GET_ONE = 'GET_ONE'
|
||||||
|
const UPDATE = 'UPDATE'
|
||||||
|
const ADD_ROW = 'ADD_ROW'
|
||||||
|
|
||||||
|
export default ({
|
||||||
|
GET_ONE,
|
||||||
|
UPDATE,
|
||||||
|
ADD_ROW
|
||||||
|
})
|
||||||
Loading…
Reference in New Issue