-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.js
executable file
·108 lines (100 loc) · 3.46 KB
/
index.js
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
'use strict';
/*
* Copyright (c) 2018 Topcoder, Inc. All rights reserved.
*/
/*
* Sequelize models
*/
const Sequelize = require('sequelize');
const config = require('config');
const constants = require('./constants');
// initialize database connection
const sequelize = new Sequelize(config.dbConfig.db_url, {
logging: null,
// operatorsAliases: false,
// native: 'true',
dialect: 'postgres'
});
// Import models
const Badge = require('./src/Badge')(sequelize, Sequelize);
const BadgeType = require('./src/BadgeType')(sequelize, Sequelize);
const Branch = require('./src/Branch')(sequelize, Sequelize);
const Campaign = require('./src/Campaign')(sequelize, Sequelize);
const Cemetery = require('./src/Cemetery')(sequelize, Sequelize);
const Country = require('./src/Country')(sequelize, Sequelize);
const Event = require('./src/Event')(sequelize, Sequelize);
const EventType = require('./src/EventType')(sequelize, Sequelize);
const File = require('./src/File')(sequelize, Sequelize);
const Flag = require('./src/Flag')(sequelize, Sequelize);
const NextOfKin = require('./src/NextOfKin')(sequelize, Sequelize);
const Photo = require('./src/Photo')(sequelize, Sequelize);
const PostSalute = require('./src/PostSalute')(sequelize, Sequelize);
const Rank = require('./src/Rank')(sequelize, Sequelize);
const Story = require('./src/Story')(sequelize, Sequelize);
const Testimonial = require('./src/Testimonial')(sequelize, Sequelize);
const User = require('./src/User')(sequelize, Sequelize);
const Veteran = require('./src/Veteran')(sequelize, Sequelize);
const War = require('./src/War')(sequelize, Sequelize);
const NotificationPreference = require('./src/NotificationPreference')(sequelize, Sequelize);
const Kin = require('./src/Kin')(sequelize, Sequelize);
const Burial = require('./src/Burial')(sequelize, Sequelize);
const Notification = require('./src/Notification')(sequelize, Sequelize);
// Create associations
const belongsToMany = (source, target, through, as) => {
source.belongsToMany(target, { through, timestamp: false, as });
};
const belongsTo = (source, target, as) => {
source.belongsTo(target, { as });
};
belongsTo(Badge, Veteran, 'veteran');
belongsTo(Badge, BadgeType, 'badgeType');
belongsTo(Event, Veteran, 'veteran');
belongsTo(Event, EventType, 'eventType');
belongsTo(NextOfKin, User, 'user');
belongsTo(NextOfKin, Veteran, 'veteran');
belongsTo(Photo, Veteran, 'veteran');
belongsTo(Photo, File, 'photoFile');
belongsTo(PostSalute, User, 'user');
belongsTo(Story, Veteran, 'veteran');
belongsTo(Testimonial, Veteran, 'veteran');
belongsTo(User, Country, 'country');
belongsTo(Veteran, Cemetery, 'cemetery');
belongsTo(Veteran, File, 'profilePicture');
belongsTo(Veteran, Kin, 'kin');
belongsTo(Veteran, Burial, 'burial');
belongsTo(NotificationPreference, User, 'user');
belongsTo(Burial, Cemetery, 'cemetery');
belongsToMany(Veteran, War, 'VeteranWars', 'wars');
belongsToMany(Veteran, Rank, 'VeteranRanks', 'ranks');
belongsToMany(Veteran, Campaign, 'VeteranCampaigns', 'campaigns');
belongsToMany(Veteran, Branch, 'VeteranBranches', 'branches');
belongsToMany(NextOfKin, File, 'NextOfKinProofs', 'proofs');
module.exports = {
Badge,
BadgeType,
Branch,
Campaign,
Cemetery,
Country,
Event,
EventType,
File,
Flag,
NextOfKin,
Photo,
PostSalute,
Rank,
Story,
Testimonial,
User,
Veteran,
War,
NotificationPreference,
Kin,
Burial,
Notification,
sequelize,
Sequelize,
syncDB: force => sequelize.sync({ force }),
modelConstants: constants
};