Skip to content

Instantly share code, notes, and snippets.

@vietkute02
Last active August 29, 2015 14:01
Show Gist options
  • Save vietkute02/f57a79828cfd8418fdc6 to your computer and use it in GitHub Desktop.
Save vietkute02/f57a79828cfd8418fdc6 to your computer and use it in GitHub Desktop.
/**
* Created by vietanha34 on 4/23/14.
*/
var mongoose = require("mongoose")
, Schema = mongoose.Schema
, settings = require('../../config/settings.js');
var subscriberSchema = new Schema({
username : { type : String, default : ''},
language : { type: String, default: 'vi'},
ip : {type: Array, default : []},
app: {type: String, default: 'ionline'},
token: {
ios : {type: Array, default : []},
android: { type : Array, default: []},
windowsphone : {type: Array , default: []},
},
version : {type: String, default : ""},
last_login: {type: String, default: ""},
available_job: {type: Number, default: ""},
new_job : {
type: Number, default: ""
}
});
subscriberSchema.methods = {
delToken : function(token , proto, cb){
var platform = {
apns : 'ios',
gcm : 'android',
http : 'http',
mpns : 'windowsphone'
};
var p = platform[proto];
if (this.token[p] && this.token[p].indexOf(token) > -1) {
this.token[p].splice(this.token[p].indexOf(token), 1)
}
if (cb) {
cb()
}
},
countToken : function(cb){
var total = 0;
var platforms = ['ios', 'android', 'windowsphone']
for(var i = 0; i < platforms.length; i++){
var platform = platforms[i]
if (this.token[platform]) {
total += this.token[platform].length;
}
}
return cb(total);
},
update : function(fields){
this.language = fields.lang != undefined ? fields.lang : this.language;
this.version = fields.version != undefined ? fields.version: this.version;
if (this.token[settings.server.proto[fields.proto]]) {
if (this.token[settings.server.proto[fields.proto]].indexOf(fields.token) > -1) {
}else {
this.token[settings.server.proto[fields.proto]].push(fields.token)
}
}
},
variables : function(variables){
var result = {};
for (var i = 0, len = variables.length; i < len; i ++) {
var variable = variables[i];
if (this[variable] != undefined) {
result[variable] = this[variable]
}
}
return result
}
};
module.exports = mongoose.model('subscriber', subscriberSchema , 'subscriber');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment