apiHelper.js 1.93 KB
define(["mUtil"],function(mUtil){var _={error:function(e,t){mUtil.console.error(e),t&&t(e)},process:function(responseText,formats,dataType,callback,fail){var doCallback=function(e){"function"==typeof callback&&callback(e)},getKeyValue=function(key,o){return eval("o."+key)};try{var result=responseText;if("json"!==dataType)try{result=JSON.parse(responseText)}catch(e){return _.error(mUtil.getLabel(5276,"结果数据转换成JSON时出现异常:")+e.message+","+mUtil.getLabel(5277,"数据如下:")+"\n"+responseText,fail)}var STATUS_CODE=formats.STATUS_CODE;if(STATUS_CODE&&STATUS_CODE.key){var errCode=getKeyValue(STATUS_CODE.key,result),trueCode=String(formats.STATUS_CODE.value);if(String(errCode)!==trueCode)return _.error(mUtil.getLabel(5271,"请求失败")+"("+mUtil.getLabel(5272,"状态码:")+errCode+","+mUtil.getLabel(5273,"正常应返回:")+trueCode+") "+(formats.ERROR_MSG?mUtil.getLabel(5274,"错误信息:")+getKeyValue(formats.ERROR_MSG,result):mUtil.getLabel(5275,"且未配置错误信息提示字段!")),fail);doCallback(result)}else doCallback(result,fail)}catch(e){return _.error(mUtil.getLabel(5278,"解析返回结果出现异常:")+e.message,fail)}}};return{requestUrl:function(e,t,r,a,l){if(!e)return _.error(mUtil.getLabel(6112,"内容来源未配置,请联系管理员。"),l);mUtil.action(e,r,function(e){_.process(e,t,"text",a,l)})},callApi:function(e,t,r,a){if(!e.api.id)return _.error(mUtil.getLabel(5270,"接口未配置,请联系管理员。"),a);var l,o=e.request,n=e.response,i=o.params.body,s=o.path,c={},u=(n.type||"text").toLowerCase(),f={dataType:u,error:function(e){_.error(e.responseText,a)}};o.params.query.forEach(function(e){c[e.name]=mUtil.replaceVal(e.value,t)});var p=i.enable,m=i.content;p?(l=mUtil.replaceVal(m,t),Object.keys(c).forEach(function(e,t){s+=0==t?"?":"&",s+=e+"="+c[e]}),f.contentType=i.type||"application/json"):l=c,Mobile_NS.callApi(s,l,o.type,function(e){_.process(e,n.formats,u,r,a)},f)}}});