Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- parseSchema(schema) {
- logger.info("Parsing schema: ", schema)
- let methods = Object.keys(schema.methods)
- logger.info("Methods found: %s", methods)
- methods.forEach( m => {
- this[m] = (...args) => {
- let reqObj = {
- "name": schema.serviceName,
- "version": config.get('wsp.version'),
- "type": config.get('wsp.request.type'),
- "methodname": m,
- "args": Object.keys(schema.methods[m].params).reduce( (acc, pname, idx) => {
- acc[pname] = args[idx]
- return acc
- }, {})
- }
- logger.debug("request object: ", reqObj)
- return new Promise( (resolve, reject) => {
- this.sendRequest(reqObj, (err, resp) => {
- if(err) return reject(err)
- let respObj = {}
- try {
- respObj = JSON.parse(resp.body)
- } catch (e) {
- logger.error("Invalid JSON response format: ", e)
- }
- if(!respObj || !respObj.res || !respObj.res.value) {
- return reject(new Error("Invalid response format"))
- }
- let resValue = respObj.res.value
- resolve(resValue)
- })
- })
- }
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement