forked from yql/yql-tables
/
tarpipe.transaction.xml
113 lines (96 loc) · 4.81 KB
/
tarpipe.transaction.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?xml version="1.0" encoding="UTF-8"?>
<table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta>
<author>Ethan Jewett</author>
<documentationURL></documentationURL>
<sampleQuery></sampleQuery>
</meta>
<bindings>
<select itemPath="" produces="XML">
<urls>
<url>http://api.tarpipe.net/2.0/activity/workflow</url>
</urls>
<inputs>
<key id="tid" type="xs:string" required="true" paramType="variable"/>
<key id="oauth_token" type="xs:string" required="true" paramType="variable"/>
<key id="oauth_token_secret" type="xs:string" required="true" paramType="variable"/>
<key id="oauth_consumer_key" type="xs:string" required="true" paramType="variable"/>
<key id="oauth_consumer_secret" type="xs:string" required="true" paramType="variable"/>
</inputs>
<execute><![CDATA[
y.include("http://oauth.googlecode.com/svn/code/javascript/oauth.js");
y.include("http://oauth.googlecode.com/svn/code/javascript/sha1.js");
var local_accessor = { consumerKey:oauth_consumer_key, consumerSecret:consumer_secret,
token:oauth_token, tokenSecret:token_secret};
var message = {};
message.action = request.path(tid).url;
message.method = "GET";
OAuth.setTimestampAndNonce(message);
OAuth.setParameter(message, "oauth_consumer_key", oauth_consumer_key);
OAuth.setParameter(message, "oauth_signature_method", "HMAC-SHA1");
OAuth.setParameter(message, "oauth_version", "1.0");
OAuth.setParameter(message, "oauth_token", oauth_token);
OAuth.SignatureMethod.sign(message, local_accessor);
get_url = OAuth.addToURL(get_url, message.parameters);
response.object = y.rest(get_url).get().response;
]]>
</execute>
</select>
<insert itemPath="" produces="XML">
<urls>
<url>http://api.tarpipe.net/2.0/workflow</url>
</urls>
<inputs>
<value id="_workflow" type="xs:string" required="false" paramType="variable"/>
<value id="workflow_id" type="xs:string" required="false" paramType="variable"/>
<value id="oauth_token" type="xs:string" required="true" paramType="variable"/>
<value id="token_secret" type="xs:string" required="true" paramType="variable"/>
<value id="oauth_consumer_key" type="xs:string" required="true" paramType="variable"/>
<value id="consumer_secret" type="xs:string" required="true" paramType="variable"/>
</inputs>
<execute><![CDATA[
y.include("http://oauth.googlecode.com/svn/code/javascript/oauth.js");
y.include("http://oauth.googlecode.com/svn/code/javascript/sha1.js");
var local_accessor = { consumerKey:oauth_consumer_key, consumerSecret:consumer_secret,
token:oauth_token, tokenSecret:token_secret};
var message = {};
message.method = "POST";
OAuth.setTimestampAndNonce(message);
OAuth.setParameter(message, "oauth_consumer_key", oauth_consumer_key);
OAuth.setParameter(message, "oauth_signature_method", "HMAC-SHA1");
OAuth.setParameter(message, "oauth_version", "1.0");
OAuth.setParameter(message, "oauth_token", oauth_token);
if(_workflow != null){
message.action = request.path("adhoc").path("start").url;
OAuth.SignatureMethod.sign(message, local_accessor);
var content = "\r\n--AaB03x\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n"+_workflow+"\r\n--AaB03x--\r\n";
var local_request = request.contentType("multipart/form-data; boundary=AaB03x");
var list = OAuth.getParameterList(message.parameters);
for (var p = 0; p < list.length; ++p) {
var parameter = list[p];
var name = parameter[0];
if (name.indexOf("oauth_") == 0) {
local_request = local_request.header(OAuth.percentEncode(name), OAuth.percentEncode(parameter[1]));
}
}
response.object = local_request.post(content).response;
} else {
var content = "\r\n--AaB03x\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n"+"title test";
content += "\r\n--AaB03x\r\nContent-Disposition: form-data; name=\"body\"\r\n\r\n"+"body test"+"\r\n--AaB03x--\r\n";
message.action = request.path("start").path(workflow_id).url;
OAuth.SignatureMethod.sign(message, local_accessor);
var local_request = request;
var list = OAuth.getParameterList(message.parameters);
for (var p = 0; p < list.length; ++p) {
var parameter = list[p];
var name = parameter[0];
if (name.indexOf("oauth_") == 0) {
local_request = local_request.header(OAuth.percentEncode(name), OAuth.percentEncode(parameter[1]));
}
}
response.object = local_request.contentType("multipart/form-data; boundary=AaB03x").header("Content-Length",content.length).post(content).response;
}
]]></execute>
</insert>
</bindings>
</table>