UNPKG

generator-hyfe

Version:
1 lines 4.23 kB
{"version":3,"sources":["app\\src\\middleware\\api.js"],"names":[],"mappings":";;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;AACA;;;;;;;;IAEQ,Q,oBAAA,Q;IAAU,S,oBAAA,S;IAAW,Y,oBAAA,Y;;kBAEd;AAAA,MAAG,QAAH,QAAG,QAAH;AAAA,MAAa,QAAb,QAAa,QAAb;AAAA,SAA4B;AAAA,WAAQ,kBAAU;AAC3D,UAAI,OAAO,QAAP,CAAJ,EAAsB;AACpB,eAAO,6BACJ,SADI,EACQ,CACX;AAAA,iBAAK,MAAL;AAAA,SADW,CADR,EAAP;AAKD;;AAED,UAAI,WAAW,mBAAQ,KAAR,EAAf;;AAEA,UAAI,CAAE,OAAO,SAAP,CAAN,EAAyB;AACvB,eAAO,KAAK,MAAL,CAAP;AACD;;AAED,UAAI,kBAAkB,OAAO,SAAP,EAAkB,GAAlB,CAAsB,UAAC,gBAAD,EAAqB;AAC/D,eAAO,qBAAqB,gBAArB,EAAuC,IAAvC,EAA6C,QAA7C,EAAuD,QAAvD,CAAP;AACD,OAFqB,CAAtB;;AAIA,UAAI,UAAU,gBAAgB,MAAhB,CAAuB,UAAC,OAAD,EAAU,OAAV,EAAqB;AACxD,eAAO,QAAQ,IAAR,CAAa,UAAC,IAAD,EAAS;AAC3B,iBAAO,QAAQ,IAAR,CAAP;AACD,SAFM,CAAP;AAGD,OAJa,EAIX,mBAAQ,OAAR,EAJW,CAAd;;AAMA,cAAQ,OAAR,CAAgB,YAAK;AACnB,iBAAS,OAAT;AACD,OAFD,EAEG,KAFH,CAES,YAAK,CAAE,CAFhB;;AAIA,aAAO,SAAS,OAAhB;AACD,KA9B0C;AAAA,GAA5B;AAAA,C;;AAgCf,SAAS,UAAT,CAAqB,MAArB,EAA6B,OAA7B,EAAsC;AACpC,MAAI,MAAM,4BAAO,EAAP,EAAW,MAAX,EAAmB,OAAnB,CAAV;AACA,SAAO,IAAI,QAAJ,CAAP;AACA,SAAO,GAAP;AACD;;AAED,SAAS,oBAAT,CAA+B,gBAA/B,EAAiD,IAAjD,EAAuD,QAAvD,EAAiE,QAAjE,EAA2E;AACzE,SAAO,UAAC,QAAD,EAAa;AAClB,QAAI,YAAY,iBAAiB,QAAjB,CAAhB;AACA,QAAI,WAAW,mBAAQ,KAAR,EAAf;AACA,QAAI,SAAS,UAAU,QAAV,CAAb;;AAEA,yBAAW,OAAO,MAAlB,EAA0B,OAAO,GAAjC,EACG,IADH,CACQ,OAAO,IADf,EAEG,KAFH,CAES,OAAO,KAFhB,EAGG,GAHH,CAGO,UAAC,GAAD,EAAM,GAAN,EAAa;AAChB,UAAI,GAAJ,EAAS;AACP,YAAK,OAAO,SAAZ,EAAwB;AACtB,mBAAS,WAAW,SAAX,EAAsB;AAC7B,kBAAM,OAAO,SADgB;AAE7B,mBAAO;AAFsB,WAAtB,CAAT;AAID;;AAED,YAAI,iBAAE,UAAF,CAAa,OAAO,UAApB,CAAJ,EAAqC;AACnC,iBAAO,UAAP,CAAkB,EAAE,kBAAF,EAAlB;AACD;AACD,iBAAS,MAAT;AACD,OAZD,MAYO;AACL,YAAI,UAAU,yBAAa,IAAI,IAAjB,CAAd;AACA,iBAAS,WAAW,SAAX,EAAsB;AAC7B,gBAAM,OAAO,WADgB;AAE7B,oBAAU;AAFmB,SAAtB,CAAT;;AAKA,YAAI,iBAAE,UAAF,CAAa,OAAO,YAApB,CAAJ,EAAuC;AACrC,iBAAO,YAAP,CAAoB,EAAE,kBAAF,EAApB;AACD;AACD,iBAAS,OAAT,CAAiB,OAAjB;AACD;AACF,KA5BH;;AA8BA,WAAO,SAAS,OAAhB;AACD,GApCD;AAqCD","file":"api.js","sourceRoot":"E:/git-repository/node-server","sourcesContent":["import superAgent from 'superagent'\nimport Promise, { using } from 'bluebird'\nimport _ from 'lodash'\nimport config from '../../../config'\nimport { camelizeKeys } from 'humps'\nimport assign from 'object-assign'\n\nconst { CALL_API, CHAIN_API, API_BASE_URL } = config\n\nexport default ({ dispatch, getState }) => next => action => {\n if (action[CALL_API]) {\n return dispatch({\n [CHAIN_API]: [\n ()=> action\n ]\n })\n }\n\n let deferred = Promise.defer()\n\n if (! action[CHAIN_API]) {\n return next(action)\n }\n\n let promiseCreators = action[CHAIN_API].map((apiActionCreator)=> {\n return createRequestPromise(apiActionCreator, next, getState, dispatch)\n })\n\n let overall = promiseCreators.reduce((promise, creator)=> {\n return promise.then((body)=> {\n return creator(body)\n })\n }, Promise.resolve())\n\n overall.finally(()=> {\n deferred.resolve()\n }).catch(()=> {})\n\n return deferred.promise\n}\n\nfunction actionWith (action, toMerge) {\n let ret = assign({}, action, toMerge)\n delete ret[CALL_API]\n return ret\n}\n\nfunction createRequestPromise (apiActionCreator, next, getState, dispatch) {\n return (prevBody)=> {\n let apiAction = apiActionCreator(prevBody)\n let deferred = Promise.defer()\n let params = apiAction[CALL_API]\n\n superAgent[params.method](params.url)\n .send(params.body)\n .query(params.query)\n .end((err, res)=> {\n if (err) {\n if ( params.errorType ) {\n dispatch(actionWith(apiAction, {\n type: params.errorType,\n error: err\n }))\n }\n\n if (_.isFunction(params.afterError)) {\n params.afterError({ getState })\n }\n deferred.reject()\n } else {\n let resBody = camelizeKeys(res.body)\n dispatch(actionWith(apiAction, {\n type: params.successType,\n response: resBody\n }))\n\n if (_.isFunction(params.afterSuccess)) {\n params.afterSuccess({ getState })\n }\n deferred.resolve(resBody)\n }\n })\n\n return deferred.promise\n }\n}\n\n"]}