Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. parseSchema(schema) {
  2. logger.info("Parsing schema: ", schema)
  3. let methods = Object.keys(schema.methods)
  4.  
  5. logger.info("Methods found: %s", methods)
  6. methods.forEach( m => {
  7. this[m] = (...args) => {
  8.  
  9. let reqObj = {
  10. "name": schema.serviceName,
  11. "version": config.get('wsp.version'),
  12. "type": config.get('wsp.request.type'),
  13. "methodname": m,
  14. "args": Object.keys(schema.methods[m].params).reduce( (acc, pname, idx) => {
  15. acc[pname] = args[idx]
  16. return acc
  17. }, {})
  18. }
  19. logger.debug("request object: ", reqObj)
  20.  
  21. return new Promise( (resolve, reject) => {
  22. this.sendRequest(reqObj, (err, resp) => {
  23. if(err) return reject(err)
  24.  
  25. let respObj = {}
  26. try {
  27. respObj = JSON.parse(resp.body)
  28. } catch (e) {
  29. logger.error("Invalid JSON response format: ", e)
  30. }
  31. if(!respObj || !respObj.res || !respObj.res.value) {
  32. return reject(new Error("Invalid response format"))
  33. }
  34. let resValue = respObj.res.value
  35. resolve(resValue)
  36. })
  37. })
  38. }
  39.  
  40. })
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement