public/js/services/AtomsApi.js (82 lines of code) (raw):
import { pandaFetch } from './pandaFetch';
export default {
getAtom: (atomType, atomId) => {
return pandaFetch(
`/api/preview/${atomType}/${atomId}`,
{
method: 'get',
credentials: 'same-origin'
}
);
},
createAtom: (atomType, atomInfo) => {
return pandaFetch(
`/api/preview/${atomType}`,
{
method: 'post',
credentials: 'same-origin',
body: JSON.stringify(atomInfo),
headers: {
'Content-Type': 'application/json',
'Csrf-Token': window.guardian.csrf.token
}
}
);
},
updateAtom: (atom) => {
return pandaFetch(
`/api/preview/${atom.atomType}/${atom.id}`,
{
method: 'put',
credentials: 'same-origin',
body: JSON.stringify(atom),
headers: {
'Content-Type': 'application/json',
'Csrf-Token': window.guardian.csrf.token
}
}
);
},
takeDownAtom: (atom) => {
return pandaFetch(
`/api/live/${atom.atomType}/${atom.id}`,
{
method: 'delete',
credentials: 'same-origin',
body: JSON.stringify(atom),
headers: {
'Content-Type': 'application/json',
'Csrf-Token': window.guardian.csrf.token
}
}
);
},
deleteAtom: (atom) => {
return pandaFetch(
`/api/preview/${atom.atomType}/${atom.id}`,
{
method: 'delete',
credentials: 'same-origin',
body: JSON.stringify(atom),
headers: {
'Content-Type': 'application/json',
'Csrf-Token': window.guardian.csrf.token
}
}
);
},
publishAtom: (atom) => {
return pandaFetch(
`/api/live/${atom.atomType}/${atom.id}`,
{
method: 'post',
credentials: 'same-origin',
body: JSON.stringify(atom),
headers: {
'Content-Type': 'application/json',
'Csrf-Token': window.guardian.csrf.token
}
}
);
}
};