UNPKG

2.18 kBJavaScriptView Raw
1const e=require("path"),t=require("bluebird"),n=require("lodash"),i=require("./files"),o=require("./icon_check"),r=require("./api"),a=require("./lookup"),c=require("./latestVersion"),u=require("./../utils/messagehandler").messagesHandler,s={title:"Connect to <%=name%>",type:"string",minLength:1,propertyOrder:1,"<%=connection%>":"<%=uid%>"};function p(e,t){if(e.tag)return e.tag;const n=t.split("_");return 1===n.length?n[0]:n.map(e=>e.substr(0,1).toUpperCase()+e.substr(1).toLowerCase()).join(" ")}function l(e,t){return t.doc_link?{html:e.description,link:{href:t.doc_link,title:"Doc Link"}}:""}module.exports=function(d,h,m){return t.coroutine(function*(){var f=yield i.getIndex(),g=f.appId,v=f.version,_=yield o.getLabel(),y=JSON.parse(yield i.getLinkedApp()).service_name,k=c.getLatestActions(f.actions).map(i=>{var o={method:"POST",headers:{accesstoken:d,validateToken:m}},c=e.join(config.APP_DIR,"action",i+".js");try{var k=require(c)}catch(e){return t.reject(e)}if("noauth"!=f.auth_type&&f.auth_type){var b={name:n.upperFirst(f.name),uid:f.appId,connection:"connection"};if("oauth"==f.auth_type){try{var q=require(e.join(config.APP_DIR,"authentication.js"))}catch(e){Console.error(u("NO_AUTH_FILE"))}b.connection="oauth",b.uid=q.oauth}n.isString(f.connection)&&""!==f.connection&&(b.uid=f.connection);var I=n.template(JSON.stringify(s))(b);(I=JSON.parse(I)).title=q?q.label:I.title,k.input.properties.auth=I}k.input=a.injectLookup(k.input,f.appId,v,f.auth_type,i,f.lookup_attachments,"action");var j=k.version?k.version:f.version;return f.actionVersion&&f.actionVersion[k.name]&&(j=f.actionVersion[k.name]),k.form&&(k.form.service=`cli-${f.appId}-${f.version}`,k.form.auth="oauth"===f.auth_type?"oauth":"connection",k.form.dependencies=n.concat(["auth"],k.form.dependencies||[]),k.form.enabled=!0),o.body={label:k.label,description:k.description,service:y,form_details:JSON.stringify(k.form)||{},action:i.split("/").pop(),input:k.input,output:k.output,app_uid:f.appId,version:j,app_version:f.version,tags:[f.tag||p(k,f.name)],icon:f.icon||_,build_id:h,usage:k.usage||l(k,f)},r.makeApiCall(`/app/${g}/${v}/actions`,o)});return yield t.all(k)})().catch(e=>t.reject(e))};
\No newline at end of file