UNPKG

2.59 kBJavaScriptView Raw
1const e=require("path"),t=require("bluebird"),r=require("lodash"),i=require("./files"),n=require("./icon_check"),o=require("./api"),a=require("./lookup"),p=require("./latestVersion"),u=require("./messagehandler").messagesHandler,c=require("../snippets/customfilter"),s=require("./helper").getUnique,g={title:"Connect to <%=name%>",type:"string",minLength:1,propertyOrder:1,"<%=connection%>":"<%=uid%>"};module.exports=function(l,h,d){return t.coroutine(function*(){var m={type:"object",title:"Select Trigger",properties:{},oneOf:[]},_={},y="",f={},v=yield i.getIndex(),k=v.appId,j=v.version,q=yield n.getLabel(),I=JSON.parse(yield i.getLinkedApp()).service_name,L={};if(!v.triggers.length)return t.resolve(!0);try{y=require(e.join(config.APP_DIR,"authentication.js")).label}catch(e){return t.reject(e)}if("noauth"!=v.auth_type&&v.auth_type){if((L={name:r.upperFirst(v.name),uid:v.appId,connection:"connection"}).connection="token"===r.get(v,"auth_type")?"token":"connection","oauth"==v.auth_type){try{var P=require(e.join(config.APP_DIR,"authentication.js"))}catch(e){Console.error(u("NO_AUTH_FILE"))}L.connection="oauth",L.uid=P.oauth}if(r.isString(v.connection)&&""!==v.connection&&(L.uid=v.connection),"token"==v.auth_type){P=require(e.join(config.APP_DIR,"authentication.js"));m.properties.auth=P.properties}else{var b=r.template(JSON.stringify(g))(L);(b=JSON.parse(b)).title=y,m.properties.auth=b,m.properties.auth.propertyOrder=1}}m.properties.customFilters=c;var A=[];p.getComponentPaths(v.triggers).map(i=>{var n=e.join(config.APP_DIR,"trigger",i+".js");try{var o=require(n),p=r.get(o.input,"properties.polling.default");if(""===(p=1==p||0==p?p:""))return t.reject(u("INVALID_TRIGGER_FILE"));A.push(p)}catch(e){return t.reject(u("INVALID_TRIGGER"))}o.input=a.injectLookup(o.input,k,j,v.auth_type,i,v.lookup_attachments,"trigger"),m.oneOf.push(o.input);const c=r.get(o,"input.properties.event.enum")[0];_=o.output&&o.output[c]&&"object"==typeof o.output[c]?r.merge(_,o.output):r.merge(_,{[c]:o.output}),f=o.mock_data&&o.mock_data[c]&&"object"==typeof o.mock_data[c]?r.merge(f,o.mock_data):r.merge(f,{[c]:o.mock_data})});var O=1==(A=A.filter(s))[0]&&1==A.length,R=p.getLatestVersion(v.triggers);R=R||v.version;var D={method:"POST",headers:{accesstoken:l,validateToken:d},body:{title:r.upperFirst(v.name),name:r.toLower(v.name),service:I,input:m,output:_,polling:O,mock_data:f,app_uid:v.appId,version:R,category:[r.upperFirst(v.name)],icon:v.icon||q,app_version:v.version,build_id:h,auth_type:L.connection}};return o.makeApiCall(`/app/${k}/${j}/triggers`,D)})().catch(e=>t.reject(e))};
\No newline at end of file