-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmongoose.js
More file actions
68 lines (65 loc) · 1.92 KB
/
mongoose.js
File metadata and controls
68 lines (65 loc) · 1.92 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import mongoose from 'mongoose';
import { parse as parseJsonc } from 'jsonc-parser';
import fs from 'fs';
let config;
try {
config = parseJsonc(fs.readFileSync('config.jsonc', 'utf8'));
} catch (error) {
config = {};
}
const mongoosefcon = config.mongoosecon;
config = undefined;
function exportmodels(mongoosecon=mongoosefcon) {
if (mongoose.connection.readyState === 0) {
mongoose.connect(mongoosecon);
}
if (mongoose.models.User) {
delete mongoose.models.User;
}
if (mongoose.models.Game) {
delete mongoose.models.Game;
}
if (mongoose.models.Poll) {
delete mongoose.models.Poll;
}
if (mongoose.models.FeatureReq) {
delete mongoose.models.FeatureReq;
}
const userSchema = new mongoose.Schema({
userid: String,
username: String,
accesslevel: Number,
properties: Object,
});
const gameSchema = new mongoose.Schema({
hostid: String,
players: [Object],
status: String,
properties: Object,
});
const pollSchema = new mongoose.Schema({
pollid: String,
question: String,
options: [String],
votes: [Number],
voters: [String],
});
const featurereqSchema = new mongoose.Schema({
reqid: String,
userid: String,
feature: String,
});
mongoose.model('User', userSchema);
mongoose.model('User').createIndexes({ userid: 1 }, { unique: true });
mongoose.model('Game', gameSchema);
mongoose.model('Game').createIndexes({ gameid: 1 }, { unique: true });
mongoose.model('Game').createIndexes({ players: 1 });
mongoose.model('Poll', pollSchema);
mongoose.model('Poll').createIndexes({ pollid: 1 }, { unique: true });
mongoose.model('FeatureReq', featurereqSchema);
mongoose.model('FeatureReq').createIndexes({ reqid: 1 }, { unique: true });
return mongoose;
};
export {
exportmodels,
};