71 lines
1.3 KiB
JavaScript
71 lines
1.3 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
var mongoose = require('mongoose');
|
||
|
var Schema = mongoose.Schema;
|
||
|
|
||
|
module.exports.teamSchema = mongoose.Schema({
|
||
|
name: String,
|
||
|
subdomain: String,
|
||
|
creator: {
|
||
|
type: Schema.Types.ObjectId,
|
||
|
ref: 'User'
|
||
|
},
|
||
|
admins: [{
|
||
|
type: Schema.Types.ObjectId,
|
||
|
ref: 'User'
|
||
|
}],
|
||
|
invitation_codes: [String],
|
||
|
avatar_thumb_uri: String,
|
||
|
avatar_uri: String,
|
||
|
payment_type: {
|
||
|
type: String,
|
||
|
default: "auto"
|
||
|
},
|
||
|
payment_plan_key: String,
|
||
|
payment_subscription_id: String,
|
||
|
blocked_at: {
|
||
|
type: Date
|
||
|
},
|
||
|
upgraded_at: {
|
||
|
type: Date
|
||
|
},
|
||
|
created_at: {
|
||
|
type: Date,
|
||
|
default: Date.now
|
||
|
},
|
||
|
updated_at: {
|
||
|
type: Date,
|
||
|
default: Date.now
|
||
|
}
|
||
|
});
|
||
|
|
||
|
module.exports.teamSchema.index({
|
||
|
creator: 1
|
||
|
});
|
||
|
|
||
|
module.exports.teamSchema.statics.getTeamForHost = (host, cb) => {
|
||
|
|
||
|
if (host != "127.0.0.1:9000") { //phantomjs check
|
||
|
let subDomainParts = host.split('.');
|
||
|
|
||
|
if (subDomainParts.length > 2) {
|
||
|
const subdomain = subDomainParts[0];
|
||
|
|
||
|
if (subdomain != "www") {
|
||
|
Team.findOne({
|
||
|
subdomain: subdomain
|
||
|
}).exec((err, team) => {
|
||
|
cb(err, team, subdomain)
|
||
|
});
|
||
|
} else {
|
||
|
cb(null, null)
|
||
|
}
|
||
|
|
||
|
} else {
|
||
|
cb(null, null);
|
||
|
}
|
||
|
} else {
|
||
|
cb(null, null);
|
||
|
}
|
||
|
}
|