Lokasi ngalangkungan proxy:   [ UP ]  
[Ngawartoskeun bug]   [Panyetelan cookie]                
Skip to content
This repository was archived by the owner on Jul 6, 2022. It is now read-only.

Commit 83a582e

Browse files
committed
Adding fleet status api call.
1 parent 0d52135 commit 83a582e

4 files changed

Lines changed: 62 additions & 5 deletions

File tree

app/js/Util.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ var Util = {
3939

4040
getUrlKey: function () {
4141
var url = window.location.href,
42-
match = url.match(/[A-z0-9]{16}/);
42+
match = url.match(/[A-z0-9]{17}/);
4343

4444
return match ? match[0] : false;
4545
},

lib/controllers/fleet.js

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
var response = require(__dirname + '/../response')
22
, settings = require(__dirname + '/../../config/settings')
33
, checks = require(__dirname + '/../middleware/checks')
4-
, moment = require('moment')
4+
, header_parser = require(__dirname + '/../middleware/header-parser')
55
, Fleet = require(__dirname + '/../models/fleet')
66
, Event = require(__dirname + '/../models/event')
77
, Member = require(__dirname + '/../models/member')
8+
, Hostile = require(__dirname + '/../models/hostile')
9+
, Scan = require(__dirname + '/../models/scan')
10+
11+
var moment = require('moment')
12+
, Q = require('q')
13+
, _ = require('lodash')
814

915
exports.join = function(req, res, next){
1016
response.success(res, []);
@@ -14,8 +20,56 @@ exports.leave = function(req, res, next){
1420
response.success(res, []);
1521
};
1622

17-
exports.status = function(req, res, next){
18-
response.success(res, []);
23+
exports.status = function(req, res, next) {
24+
if (!req.session.fleetKey || !req.session.memberKey) {
25+
var self = Member.prepare('none', header_parser(req))
26+
var event = Event.prepare('statusSelf', 'none', self)
27+
28+
return response.success(res, [ event ]);
29+
}
30+
31+
Member.findOneQ({key: req.session.memberKey})
32+
.then(function(member) {
33+
// TODO
34+
// SessionService.checkIfValid ?
35+
var events = [];
36+
events.push( Event.prepare('statusSelf', member.fleetKey, member) );
37+
38+
var tasks = [
39+
Fleet.findOne({key: member.fleetKey}).execQ().then(function(fleet) {
40+
return Event.prepare('statusFleet', member.fleetKey, fleet);
41+
}),
42+
Event.find({fleetKey: member.fleetKey}).execQ().then(function(events) {
43+
return Event.prepare('statusEvents', member.fleetKey, events);
44+
}),
45+
Member.find({fleetKey: member.fleetKey}).execQ().then(function(members) {
46+
return Event.prepare('statusMembers', member.fleetKey, members);
47+
}),
48+
Hostile.find({fleetKey: member.fleetKey}).execQ().then(function(hostiles) {
49+
return Event.prepare('statusHostiles', member.fleetKey, hostiles);
50+
}),
51+
Scan.find({fleetKey: member.fleetKey}).execQ().then(function(scans) {
52+
return Event.prepare('statusScans', member.fleetKey, scans);
53+
})
54+
];
55+
56+
Q.all(tasks)
57+
.then(function(results) {
58+
_.each(results, function(result) { events.push(result); });
59+
return response.success(res, events);
60+
})
61+
.catch(function(error) {
62+
console.log(error)
63+
return response.error(res, 'state', 'Error fetching fleet tasks.');
64+
})
65+
.done();
66+
})
67+
.catch(function(error) {
68+
console.log(error)
69+
return response.error(res, 'state', 'Error fetching fleet status.');
70+
})
71+
.done();
72+
1973
};
2074

2175
exports.poll = function(req, res, next){

lib/models/member.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ var mongoose = require('mongoose-q')()
33
, moment = require('moment')
44
, settings = require(__dirname + '/../../config/settings')
55
, key_generator = require(__dirname + '/../util/key-generator')
6-
6+
77
var MemberSchema = new Schema({
88
ts: { type: Number, default: function() { return new Date().getTime(); } },
99
key: { type: String, index: true, default: function() { return key_generator.getKey(); } },

lib/routes/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ router.route('/unlink')
2929
.get(checks.if_authenticated)
3030
.get(application.unlink);
3131

32+
router.route('/:fleetKey/?')
33+
.get(application.index);
34+
3235
router.route('/')
3336
.get(application.index);
3437

0 commit comments

Comments
 (0)