This repository was archived by the owner on Jul 6, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmember.js
More file actions
45 lines (38 loc) · 1.35 KB
/
Copy pathmember.js
File metadata and controls
45 lines (38 loc) · 1.35 KB
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
var mongoose = require('mongoose-q')()
, Schema = mongoose.Schema
, moment = require('moment')
, key_generator = require(__dirname + '/../util/key-generator')
, settings = require(__dirname + '/../config/settings')
var MemberSchema = new Schema({
ts: { type: Number, default: function() { return moment().unix(); } },
key: { type: String, default: function() { return key_generator.getKey(); } },
fleetKey: { type: String },
characterId: Number,
characterName: String,
shipType: String,
shipTypeId: Number,
regionName: String,
systemName: String,
systemId: Number,
isDocked: Boolean
});
MemberSchema.index({ ts: 1, key: 1, fleetKey: 1 }, { expireAfterSeconds: settings.memberTtl });
MemberSchema.statics.prepare = function prepare(key, fleet, callback) {
var m = new this({
fleetKey: key,
characterId: fleet.characterId,
characterName: fleet.characterName,
shipType: fleet.shipType,
shipTypeId: fleet.shipTypeId,
shipName: fleet.shipName,
regionName: fleet.regionName,
systemName: fleet.systemName,
systemId: fleet.systemId,
isDocked: fleet.isDocked
});
this.findOne({characterId: fleet.characterId, characterName: fleet.characterName}, function(err, member) {
if (member) { m.key = member.key; }
return callback(m);
});
};
module.exports = mongoose.model('Member', MemberSchema);