Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. import { Container, ApiAbort } from 'apicase'
  2.  
  3. // I separated it for better understanding
  4. import services from './services'
  5.  
  6. // Pass authorization token to every service
  7. const headers = () => ({
  8. token: localStorage.getItem('token')
  9. })
  10.  
  11. // Made our API accessible only for authorized users
  12. const hooks = {
  13. before: {
  14. name: 'Token validation',
  15. handler (ctx, next) {
  16. return ctx.headers.token
  17. ? next()
  18. : next(new ApiAbort('You are not authorized', { type: 'missedToken' }))
  19. }
  20. },
  21. missedToken () {
  22. location.href = '/login'
  23. }
  24. }
  25.  
  26. // Global mixins for our specific API
  27. const mixins = {
  28. success () {
  29. return this.ok && this.result
  30. ? this.result.success
  31. : false
  32. },
  33. data () {
  34. return this.success
  35. ? this.result.data
  36. : null
  37. },
  38. }
  39.  
  40. export default new Container ({
  41. base: '/api/v1',
  42. hooks,
  43. mixins,
  44. headers,
  45. services
  46. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement