· 6 years ago · Jul 19, 2019, 03:56 PM
1var express = require('express'),
2sys = require('sys'),
3util = require('util'),
4OAuth = require('oauth').OAuth,
5fs = require('fs');
6
7var app = module.exports = express.createServer()
8
9app.configure('development', function() {
10 app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
11 app.use(express.logger());
12 app.use(express.cookieParser());
13 app.use(express.session({secret: "ssshhhh!"}));
14});
15
16var configFile = process.env['HOME']+"/config.js";
17var config = require(configFile);
18
19var privateKeyData = fs.readFileSync(config["consumerPrivateKeyFile"], "utf8");
20
21var consumer =
22 new OAuth("https://jdog.atlassian.com/plugins/servlet/oauth/request-token",
23 "https://jdog.atlassian.com/plugins/servlet/oauth/access-token",
24 config["consumerKey"],
25 "",
26 "1.0",
27 "http://localhost:8080/sessions/callback",
28 "RSA-SHA1",
29 null,
30 privateKeyData);
31
32
33
34
35app.dynamicHelpers({
36 session: function(request, response){
37 return request.session;
38 }
39});
40
41app.get('/', function(request, response){
42 response.send('Hello World');
43});
44
45app.get('/sessions/connect', function(request, response){
46 consumer.getOAuthRequestToken(
47 function(error, oauthToken, oauthTokenSecret, results) {
48 if (error) {
49 console.log(error.data);
50 response.send('Error getting OAuth access token');
51 }
52 else {
53 request.session.oauthRequestToken = oauthToken;
54 request.session.oauthRequestTokenSecret = oauthTokenSecret;
55 response.redirect("https://jdog.atlassian.com/plugins/servlet/oauth/authorize?oauth_token="+request.session.oauthRequestToken);
56 }
57 }
58 )
59});
60
61app.get('/sessions/callback', function(request, response){
62 consumer.getOAuthAccessToken (
63 request.session.oauthRequestToken,
64 request.session.oauthRequestTokenSecret,
65 request.query.oauth_verifier,
66 function(error, oauthAccessToken, oauthAccessTokenSecret, results){
67 if (error) {
68 console.log(error.data);
69 response.send("error getting access token");
70 }
71 else {
72 request.session.oauthAccessToken = oauthAccessToken;
73 request.session.oauthAccessTokenSecret = oauthAccessTokenSecret;
74 consumer.get("https://jdog.atlassian.com/rest/api/latest/issue/JRADEV-8110.json",
75 request.session.oauthAccessToken,
76 request.session.oauthAccessTokenSecret,
77 "application/json",
78 function(error, data, resp){
79 console.log(data);
80 data = JSON.parse(data);
81 response.send("I am looking at: "+data["key"]);
82 }
83 );
84 }
85 }
86 )
87 });
88
89
90app.listen(parseInt(process.env.PORT || 8080));