Blame view
imports/collections/staff/index.js
4.17 KB
925ffa9d3
|
1 |
// import {Staffs } from '/imports/collections/staff/index' |
d75229d74
|
2 3 4 5 6 7 8 9 |
import _ from 'lodash'; import { Meteor } from 'meteor/meteor'; import { Mongo } from 'meteor/mongo'; import { SimpleSchema } from 'meteor/aldeed:simple-schema'; import { Orgs } from '/imports/collections/orgs/index'; import { Users } from '/imports/collections/users/index'; |
925ffa9d3
|
10 |
class Staff { |
d75229d74
|
11 12 13 14 15 16 17 18 |
constructor(doc) { _.assign(this, doc); }; getUserIds() { return _.filter(_.map(this.users, 'userId')); }; }; |
925ffa9d3
|
19 |
export { Staff }; |
d75229d74
|
20 |
|
925ffa9d3
|
21 |
class StaffsCollection extends Mongo.Collection { |
d75229d74
|
22 23 24 25 26 27 28 |
insert(item, callback) { _.assign(item, { createdAt: new Date().getTime(), }); return super.insert(item, callback); }; }; |
167dd6325
|
29 |
export const Staffs = new StaffsCollection('Staffs', { |
d75229d74
|
30 |
transform: (item) => { |
925ffa9d3
|
31 |
return new Staff(item); |
d75229d74
|
32 33 |
}, }); |
925ffa9d3
|
34 35 |
_.assign(Staffs, { allStaffs: () => { |
d75229d74
|
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
const user = Users.current(); if(!user) return null; return Orgs.find({'users.userId': user._id}); }, current: () => { const user = Users.current(); if(!user) return null; return Orgs.findOne({_id: user.orgId}); }, currentOrgUsers: () => { const OrgsArr = Orgs.current(); if(!OrgsArr) return null; return OrgsArr.users; }, }); |
925ffa9d3
|
52 |
Staffs.deny({ |
d75229d74
|
53 54 55 56 |
insert() { return true; }, update() { return true; }, remove() { return true; }, }); |
925ffa9d3
|
57 |
Staffs.schema = new SimpleSchema({ |
d75229d74
|
58 59 |
userId: { type: String }, orgId: { type: String }, |
167dd6325
|
60 61 |
employeeId: { type: String ,unique: true,}, |
ec5f044a9
|
62 63 |
martialStatus: { type: String }, dob: { type: String }, |
d75229d74
|
64 |
gender: { type: String, optional: true }, |
167dd6325
|
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
teaching: { type: String }, type: { type: String, optional: true }, doj: { type: String }, bloodGroup: { type: String, optional: true }, nationality: { type: String, optional: true }, motherTongue: { type: String, optional: true }, religion: { type: String, optional: true }, PANNumber: { type: String, optional: true }, ESINumber: { type: String, optional: true }, aadharNumber: { type: String, optional: true }, PFNumber: { type: String,optional: true }, permanentAddress: { type: new SimpleSchema({ |
df05c55ea
|
82 |
address: { type: String, optional: true }, |
167dd6325
|
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 109 110 111 112 113 114 115 116 117 |
city: { type: String, optional: true }, state: { type: String, optional: true }, zip: { type: String, optional: true }, }), optional: true }, bankdetails: { type: new SimpleSchema({ bankAccountNo: { type: String, optional: true }, bankIFSC: { type: String, optional: true }, bankBranchDetails: { type: String, optional: true } }), optional: true }, workingExperience: { type: [new SimpleSchema({ previousJobRole: { type: String, optional: true }, previousJobType: { type: String, optional: true }, previousOrganization:{ type: String, optional: true }, from: { type: String, optional: true }, to: { type: String, optional: true } })], optional: true }, educationDetails: { type: [ new SimpleSchema({ qualifaication: { type: String, optional: true }, specialization: { type: String, optional: true }, university: { type: String, optional: true }, from: { type: String, optional: true }, to: { type: String, optional: true } })], |
df05c55ea
|
118 |
optional: true |
167dd6325
|
119 |
}, |
d75229d74
|
120 121 122 123 124 125 126 127 128 129 130 |
services: { type: Object, optional: true, blackbox: true, }, isMetaUser: { type: Boolean, optional: true }, createdAt: { type: Date, autoValue: function(){return new Date();}} }); |
925ffa9d3
|
131 |
Staffs.attachSchema(Staffs.schema); |
d75229d74
|
132 |
|
925ffa9d3
|
133 |
Staffs.privateFields = { |
d75229d74
|
134 |
orgId: 1, |
d75229d74
|
135 136 137 138 |
isMetaUser: 1, createdAt: 1, }; |
925ffa9d3
|
139 |
Staffs.publicFields = { |
d75229d74
|
140 141 142 143 144 145 |
firstName: 1, lastName: 1, emails: 1, createdAt: 1, }; |