mirror of
https://github.com/koodiklinikka/koodiklinikka.fi-api.git
synced 2026-01-26 11:44:12 +00:00
send invite to github organization after slack invitation is created and user can be found from github
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
var validator = require('validator');
|
||||
var slack = require('../services/slack');
|
||||
var github = require('../services/github');
|
||||
|
||||
module.exports = function (app) {
|
||||
/*
|
||||
@@ -21,16 +22,28 @@ module.exports = function (app) {
|
||||
|
||||
slack
|
||||
.createInvite(req.body.email)
|
||||
.then(success)
|
||||
.catch(function(err) {
|
||||
var message = 'Creating automatic invitation failed for: ' + req.body.email + ' reason: ' + err;
|
||||
return slack.createMessage(message);
|
||||
.then(function() {
|
||||
github
|
||||
.findUserByEmail(req.body.email)
|
||||
.then(github.inviteToOrg)
|
||||
.then(function(user) {
|
||||
var message = 'User ' + user.login + ' invited to GitHub organization.'
|
||||
slack.createMessage(message);
|
||||
})
|
||||
.catch(function(err) {
|
||||
var message = 'Creating GitHub invitation failed for: ' + req.body.email + ' reason: ' + err;
|
||||
slack.createMessage(message);
|
||||
});
|
||||
})
|
||||
.then(success)
|
||||
.catch(function(err) {
|
||||
var message = 'Creating automatic invitation failed for: ' + req.body.email + ' reason: ' + err;
|
||||
slack.createMessage(message);
|
||||
|
||||
console.error(err);
|
||||
var err = new Error('Creating slack invitation failed');
|
||||
return next(err);
|
||||
|
||||
var error = new Error('Creating slack invitation failed');
|
||||
return next(error);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -53,6 +53,26 @@ module.exports = {
|
||||
reject(error);
|
||||
}
|
||||
resolve(response.body);
|
||||
/**
|
||||
* Invite user to organization
|
||||
*/
|
||||
inviteToOrg: function(user) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
request
|
||||
.put('https://api.github.com/orgs/koodiklinikka/memberships/' + user.login)
|
||||
.set('Authorization', 'token ' + config.github.token)
|
||||
.send({role: 'member'})
|
||||
.end(function(error, response){
|
||||
|
||||
if(error) {
|
||||
return reject(error);
|
||||
}
|
||||
|
||||
if(response.statusCode !== 200) {
|
||||
return reject(response.error);
|
||||
}
|
||||
|
||||
resolve(response.body.user);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user