@dhyasama/totem-models 6.33.3 → 6.34.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/Account.js CHANGED
@@ -127,6 +127,12 @@ module.exports = function(mongoose, config) {
127
127
  .exec(cb);
128
128
  };
129
129
 
130
+ Account.statics.getForCustomer = function (customerId, cb) {
131
+ this
132
+ .find({ 'org': customerId })
133
+ .exec(cb);
134
+ };
135
+
130
136
  Account.statics.listGoogleAccounts = function(cb) {
131
137
 
132
138
  this
package/lib/Deal.js CHANGED
@@ -155,17 +155,7 @@ module.exports = function(mongoose, config) {
155
155
  path: 'documents',
156
156
  match: { customer: config.CUSTOMER_ID }
157
157
  })
158
- .populate('history.account', 'person')
159
- .exec(function(err, deal) {
160
-
161
- if (err) return cb(err, null);
162
-
163
- deal.deepPopulate('organization.chairs.first', {
164
- populate: { 'organization.chairs.first': { select: 'name avatarUrl title doNotDisplay' } }
165
- }, cb);
166
-
167
- });
168
-
158
+ .exec(cb);
169
159
  };
170
160
 
171
161
  Deal.statics.getByIds = function (ids, cb) {
@@ -179,25 +169,7 @@ module.exports = function(mongoose, config) {
179
169
  path: 'documents',
180
170
  match: { customer: config.CUSTOMER_ID }
181
171
  })
182
- .exec(function(err, deals) {
183
-
184
- if (err) return cb(err, null);
185
- else if (!deals || deals.length == 0) return cb(null, []);
186
-
187
- var calls = [];
188
-
189
- _.each(deals, function(deal) {
190
- var func = function(callback) {
191
- deal.deepPopulate('organization.chairs.first', {
192
- populate: { 'organization.chairs.first': { select: 'name avatarUrl title doNotDisplay' } }
193
- }, callback);
194
- };
195
- calls.push(func);
196
- });
197
-
198
- async.parallel(calls, cb);
199
-
200
- });
172
+ .exec(cb);
201
173
  };
202
174
 
203
175
  // Get all deals belonging to a customer
@@ -226,33 +198,7 @@ module.exports = function(mongoose, config) {
226
198
  .populate({
227
199
  path: 'documents',
228
200
  match: { customer: customerId }
229
- })
230
- // .deepPopulate([
231
- // 'organization.chairs.first'
232
- // ], {
233
- // populate: {
234
- // 'organization.chairs.first': { select: 'name avatarUrl title doNotDisplay' }
235
- // }
236
- // })
237
- .exec(function(err, deals) {
238
-
239
- if (err) return cb(err, null);
240
- else if (!deals || deals.length == 0) return cb(null, []);
241
-
242
- var calls = [];
243
-
244
- _.each(deals, function(deal) {
245
- var func = function(callback) {
246
- deal.deepPopulate('organization.chairs.first', {
247
- populate: { 'organization.chairs.first': { select: 'name avatarUrl title doNotDisplay' } }
248
- }, callback);
249
- };
250
- calls.push(func);
251
- });
252
-
253
- async.parallel(calls, cb);
254
-
255
- });
201
+ }).exec(cb);
256
202
 
257
203
  };
258
204
 
@@ -288,14 +234,7 @@ module.exports = function(mongoose, config) {
288
234
  path: 'documents',
289
235
  match: { customer: config.CUSTOMER_ID }
290
236
  })
291
- .exec(function(err, deal) {
292
- if(deal && deal.history) {
293
- deal.deepPopulate('history.account.person', {
294
- populate: { 'history.account.person': { select: 'name avatarUrl title doNotDisplay' } }
295
- }, cb);
296
- }
297
- else cb(err, deal);
298
- });
237
+ .exec(cb);
299
238
  };
300
239
 
301
240
  Deal.statics.modifyById = function(id, update, cb) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhyasama/totem-models",
3
- "version": "6.33.3",
3
+ "version": "6.34.1",
4
4
  "author": "Jason Reynolds",
5
5
  "license": "UNLICENSED",
6
6
  "description": "Models for Totem platform",
package/test/Account.js CHANGED
@@ -10,11 +10,12 @@ var
10
10
  Crypto = require('@dhyasama/ffvc-crypto'),
11
11
  crypto = new Crypto({'key': config.crypto.key}),
12
12
  Account = mongoose.model('Account'),
13
+ Organization = mongoose.model('Organization'),
13
14
  Person = mongoose.model('Person'),
14
15
  person = new Person();
15
16
 
16
17
  var accountid;
17
-
18
+ var customer;
18
19
 
19
20
  describe('Account', function() {
20
21
 
@@ -27,6 +28,23 @@ describe('Account', function() {
27
28
  clearDB(done);
28
29
  });
29
30
 
31
+ before(function(done) {
32
+
33
+ customer = new Organization();
34
+ customer.name = 'Fudgesicle';
35
+ customer.slug = 'fudgesicle';
36
+ customer.website = 'yum.io';
37
+ customer.deleted = false;
38
+ customer.aliases.push('sicle');
39
+ customer.crunchbase.uuid = 'jkl';
40
+ customer.crunchbase.url = 'jkl';
41
+
42
+ Organization.upsert(customer, 'test-user', function (err, no5) {
43
+ done();
44
+ });
45
+
46
+ });
47
+
30
48
  it('creates an account', function(done) {
31
49
 
32
50
  person.name.first = 'George';
@@ -48,6 +66,7 @@ describe('Account', function() {
48
66
  account.email = 'test@totemvc.com';
49
67
  account.person = newPerson;
50
68
  account.active = true;
69
+ account.customer = customer;
51
70
 
52
71
  Account.upsert(account, function(err, updatedAccount) {
53
72
  should.not.exist(err);
@@ -113,4 +132,14 @@ describe('Account', function() {
113
132
 
114
133
  });
115
134
 
135
+ it('lists accounts for customer', function(done) {
136
+
137
+ Account.getForCustomer(customer._id, function(err, result) {
138
+ should.not.exist(err);
139
+ should.exist(result);
140
+ done();
141
+ });
142
+
143
+ });
144
+
116
145
  });