Created
September 24, 2017 00:03
-
-
Save Kelin2025/419ba54da5341b379a2d4b2a8fb219ea to your computer and use it in GitHub Desktop.
For apicase website
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Apicase from 'apicase' | |
const headers = { 'Content-Type': 'multipart/form-data' } | |
const catalog = { | |
url: 'catalog', | |
services: [ | |
{ name: 'category', url: 'categories', method: 'get' }, | |
{ name: 'platform', url: 'platforms', method: 'get' }, | |
{ name: 'apps', url: 'apps', method: 'get' }, | |
{ name: 'categoryApps', url: '/catalog/apps/', method: 'get' }, | |
{ name: 'app', url: 'apps/:id', | |
services: [ | |
{ name: 'get', url: '', method: 'get' }, | |
{ name: 'delete', url: '', method: 'delete' }, | |
{ name: 'add', url: '', method: 'post' }, | |
{ name: 'download', url: '/download', method: 'get' } | |
] | |
}, | |
{ name: 'developer', url: 'developer', | |
services: [ | |
{ name: 'app', url: 'apps', | |
services: [ | |
{ name: 'getOne', url: ':id' } | |
] | |
}, | |
{ name: 'request', url: 'request', | |
services: [ | |
{ name: 'apps', url: '', method: 'get' }, | |
{ name: 'create', url: '', method: 'post' }, | |
{ name: 'app', url: ':id', method: 'get' }, | |
{ name: 'update', url: ':id', method: 'post' }, | |
{ name: 'delete', url: ':id', method: 'delete' } | |
] | |
}, | |
{ name: 'img', url: 'image', | |
services: [ | |
{ name: 'upload', url: '', method: 'post', headers } | |
] | |
}, | |
{ name: 'file', url: 'content', | |
services: [ | |
{ name: 'post', url: ':id', method: 'post' }, | |
{ name: 'upload', url: '', method: 'post', headers } | |
] | |
} | |
] | |
} | |
] | |
} | |
export default new Apicase(catalog) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import axios from './axios-custom' | |
export const category = () => axios.get('/catalog/categories/') | |
export const platform = () => axios.get('/catalog/platforms/') | |
export const apps = () => axios.get('/catalog/apps/') | |
export const categoryApps = (id) => axios.get('/catalog/apps/', { params: { cat: id } }) | |
export const app = { | |
get: id => axios.get(`catalog/apps/${id}`), | |
add: id => axios.post(`catalog/apps/${id}/`), | |
delete: id => axios.delete(`catalog/apps/${id}`), | |
download: id => axios.get(`catalog/${id}/download`) | |
} | |
export const developer = { | |
requestApp: (id) => axios.get(`/catalog/developer/request/${id}`), | |
requestApps: () => axios.get('/catalog/developer/request/'), | |
delRequestApp: (id) => axios.delete(`/catalog/developer/request/${id}`), | |
createApp: (data) => axios.post('/catalog/developer/request/', data), | |
updateApp: (id, data) => axios.post(`/catalog/developer/request/${id}/`, data), | |
app: (id = '') => id === '' | |
? axios.get('/catalog/developer/apps') | |
: axios.get(`/catalog/developer/apps/${id}`) | |
} | |
export const img = { | |
upload: (data) => axios.post('/catalog/developer/image/', data, { headers: { 'Content-Type': 'multipart/form-data' } }) | |
} | |
export const file = { | |
post: (id, data) => axios.post(`/catalog/developer/content/${id}/`, data), | |
upload: (data) => axios.post('/catalog/developer/content/', data, { headers: { 'Content-Type': 'multipart/form-data' } }) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Apicase from 'apicase' | |
// Declare hooks | |
const hooks = { | |
before: ({ meta, headers }, then) => | |
meta.needAuth && !headers.token | |
? then.next() | |
: then.abort({ type: 'notAuthorized' }), | |
notAuthorized () { | |
alert('You are not authorized') | |
}, | |
error ({ status }) { | |
if (status !== 401) return | |
alert('You are not authorized') | |
localStorage.removeItem('token') | |
} | |
} | |
// Declare headers | |
const headers = () => ({ | |
token: localStorage.getItem('token') | |
}) | |
// And there you don't need any trash | |
const api = new Apicase({ | |
url: 'api/v1', | |
hooks, | |
headers, | |
services: [ | |
{ name: 'foo', url: 'foo/bar' }, | |
{ name: 'withAuth', url: 'baz', meta: { needAuth: true } } | |
] | |
}) | |
// Just call it | |
api.go('withAuth') |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import axios from './axios-custom' | |
export const category = () => axios.get('/catalog/categories/') | |
export const platform = () => axios.get('/catalog/platforms/') | |
export const apps = () => axios.get('/catalog/apps/') | |
export const categoryApps = (id) => axios.get('/catalog/apps/', { params: { cat: id } }) | |
export const app = { | |
get: id => axios.get(`catalog/apps/${id}`), | |
add: id => axios.post(`catalog/apps/${id}/`), | |
delete: id => axios.delete(`catalog/apps/${id}`), | |
download: id => axios.get(`catalog/${id}/download`) | |
} | |
export const developer = { | |
requestApp: (id) => axios.get(`/catalog/developer/request/${id}`), | |
requestApps: () => axios.get('/catalog/developer/request/'), | |
delRequestApp: (id) => axios.delete(`/catalog/developer/request/${id}`), | |
createApp: (data) => axios.post('/catalog/developer/request/', data), | |
updateApp: (id, data) => axios.post(`/catalog/developer/request/${id}/`, data), | |
app: (id = '') => id === '' | |
? axios.get('/catalog/developer/apps') | |
: axios.get(`/catalog/developer/apps/${id}`) | |
} | |
export const img = { | |
upload: (data) => axios.post('/catalog/developer/image/', data, { headers: { 'Content-Type': 'multipart/form-data' } }) | |
} | |
export const file = { | |
post: (id, data) => axios.post(`/catalog/developer/content/${id}/`, data), | |
upload: (data) => axios.post('/catalog/developer/content/', data, { headers: { 'Content-Type': 'multipart/form-data' } }) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment