api.js 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. const app = require('../app')
  2. const _ = require('lodash')
  3. app.run(function(api) {
  4. api.statistics = () => api.get('/api/statistics')
  5. let terminals = null
  6. api.terminals = () => terminals || (terminals = api.get('/api/terminals'))
  7. let terminalsDictionary = null
  8. api.terminalsDictionary = () => terminalsDictionary || (terminalsDictionary = api.terminals().then(terminals =>
  9. _.fromPairs(terminals.map(loc => [loc.key, loc]))
  10. ))
  11. api.terminal = (key) => api.terminals().then(async terminals =>
  12. (await api.terminalsDictionary())[key]
  13. )
  14. let staffMembers = null
  15. api.staffMembers = () => staffMembers || (staffMembers = api.get('/api/staff-members/all'))
  16. let staffMemberDictionary = null
  17. api.staffMemberDictionary = () => staffMemberDictionary || (staffMemberDictionary = api.staffMembers().then(staffMembers =>
  18. _.fromPairs(staffMembers.map(sm => [sm.id, sm]))
  19. ))
  20. let retailers = null
  21. api.retailers = () => retailers || (retailers = api.get('/api/retailers/all'))
  22. let retailerDictionary = null
  23. api.retailerDictionary = () => retailerDictionary || (retailerDictionary = api.retailers().then(retailers =>
  24. _.fromPairs(retailers.map(sm => [sm.id, sm]))
  25. ))
  26. })