UNPKG

4.34 kBJavaScriptView Raw
1var Middlewares = function(object) {}
2
3var gFunctionAuthenticator = require('letsnet-graphed').functionAuth
4
5var mongoose = require('mongoose')
6var AccountSchema = new mongoose.Schema({
7 id: mongoose.Schema.Types.ObjectId,
8 name: String,
9 title: String,
10 apikeys: [{
11 key: String,
12 email: String
13 }],
14 created: Date,
15 url: {
16 test: String,
17 release: String,
18 production: String
19 },
20 mongooseCredentials: {
21 url: String,
22 user: String,
23 passwd: String
24 },
25 digitalOcean: {
26 dropletId: String
27 },
28 mail: {
29 mail: String,
30 password: String,
31 clientID: String,
32 clientSecret: String,
33 refreshToken: String,
34 from: String
35 }
36})
37
38Middlewares.prototype.gAuthenticateFunction = function(object, queue) {
39 gFunctionAuthenticator({appid: object.appid || '---'}).authenticateFunction({functionID: object.functionID || '---', email: object.email || '---'}, function(error, document) {
40 delete object['functionID']; delete object['appid']
41 if(error) queue.stop({lCode: document.lCode, msg: document.msg, type: 'authentication-error'})
42 else queue.next()
43 })
44}
45
46Middlewares.prototype.getMongooseCredentials = function(object, queue) {
47 if(object.mongooseCredentials === undefined) queue.stop({type: 'credential-error', msg: 'Adja meg a kapcsolathoz szükséges információkat!'})
48 else {
49 let mongodb = mongoose.createConnection('mongodb://' + object.mongooseCredentials.user + ':' + object.mongooseCredentials.passwd + object.mongooseCredentials.url)
50 delete object['mongooseCredentials']
51 let shema = mongodb.model('account', AccountSchema)
52 shema.findOne({apikeys: {$elemMatch: {$or: [{email: object.email }, {key: object.apikey}]}}}, 'mongooseCredentials', function(err, document) {
53 if(err) queue.stop({type: 'connection-error', msg: 'Hiba az adatbázis kapcsolatnál!'})
54 else {
55 mongoose.disconnect()
56 if(document == null) { queue.stop({type: 'query-error', msg: 'Nem található az adatbázisban!'})}
57 else if(document.mongooseCredentials.url === undefined || document.mongooseCredentials.user === undefined || document.mongooseCredentials.passwd === undefined) queue.stop({type: 'query-error', msg: 'Nem találhatók az adatbázis kapcsolathoz szükséges információk!'})
58 else {
59 object.userMongooseCredentials = document.mongooseCredentials
60 queue.next()
61 }
62 }
63 })
64 }
65}
66
67Middlewares.prototype.getMongooseCredentialsByAppID = function(object, queue) {
68 if(object.mongooseCredentials === undefined) queue.stop({type: 'credential-error', msg: 'Adja meg a kapcsolathoz szükséges információkat!'})
69 else {
70 let mongodb = mongoose.createConnection('mongodb://' + object.mongooseCredentials.user + ':' + object.mongooseCredentials.passwd + object.mongooseCredentials.url)
71 delete object['mongooseCredentials']
72 let shema = mongodb.model('account', AccountSchema)
73 shema.findOne({apikeys: {$elemMatch: {key: object.apikey}}}, 'mongooseCredentials', function(err, document) {
74 if(err) queue.stop({type: 'connection-error', msg: 'Hiba az adatbázis kapcsolatnál!'})
75 else {
76 mongoose.disconnect()
77 if(document == null) { queue.stop({type: 'query-error', msg: 'Nem található az adatbázisban!'})}
78 else if(document.mongooseCredentials.url === undefined || document.mongooseCredentials.user === undefined || document.mongooseCredentials.passwd === undefined) queue.stop({type: 'query-error', msg: 'Nem találhatók az adatbázis kapcsolathoz szükséges információk!'})
79 else {
80 object.userMongooseCredentials = document.mongooseCredentials
81 queue.next()
82 }
83 }
84 })
85 }
86}
87
88Middlewares.prototype.prepareApikey = function(object, queue) {
89 if(object.apikey === undefined) queue.stop({msg: 'authentication-error', msg: 'Nem található apikey!'})
90 else {
91 object.apikey = apikey.slice(7)
92 queue.next()
93 }
94}
95
96module.exports = Middlewares
\No newline at end of file