Commit Graph

2285 Commits

Author SHA1 Message Date
Raymond Feng 137d096cfb Allow nesting properties to be queried for memory connector
See https://github.com/strongloop/loopback/issues/517
2015-03-27 16:05:12 -07:00
Raymond Feng d192b2ea05 Fix the test cases so that they be run with the mssql connector
For SQL server, if the PK is an identity, the id cannot be set for
insert.
2015-03-27 14:18:17 -07:00
Miroslav Bajtoš 093a307052 Merge pull request #542 from strongloop/feature/default-to-null
Add model setting "persistUndefinedAsNull"
2015-03-27 18:39:03 +01:00
Miroslav Bajtoš 9fd4c00225 Add model setting "persistUndefinedAsNull"
When the setting "persistUndefinedAsNull" is true,
the model will use `null` instead of `undefined` in
all property values.

 - Known optional model properties are set to `null` when no value
   was provided.

 - When setting model properties, `undefined` is always converted
   to `null`. This applies to both known (model-defined) properties
   and additional (custom, dynamic) properties.

 - The instance method `toObject()` converts `undefined` to `null` too.
   Because `toJSON()` calls `toObject()` under the hood, the change
   applies to `toJSON()` too.
2015-03-27 18:25:26 +01:00
Miroslav Bajtoš dac1899f59 2.22.0
* Code cleanup in updateAll/deleteAll (Miroslav Bajtoš)

 * Return scope object from DAO.scope (Fabien Franzen)

 * Remove all usages of lodash. (Miroslav Bajtoš)

 * Clean up delete and update tests (Simon Ho)

 * Clean up wording in update/delete tests (Simon Ho)

 * Fix wording in update test (Simon Ho)

 * Properly support embedsMany destroyAll (Fabien Franzen)

 * Clean up update/delete manipulation tests (Simon Ho)

 * test: fix test failure in MySQL connector (Miroslav Bajtoš)

 * Improve test failure messages (Miroslav Bajtoš)

 * Fix regression in prototype.save (Miroslav Bajtoš)

 * Enable more CRUD remoting methods for embedsOne (Fabien Franzen)

 * Implement scope.findOne (Fabien Franzen)

 * use findOrCreate for HasManyThrough#create (Clark Wang)

 * Enhance id comparision for updateAttributes (Raymond Feng)

 * Enable custom methods on singular relations (Fabien Franzen)

 * Implement scope.findById (Fabien Franzen)

 * Fix updateAll callback in "transient" connector (Miroslav Bajtoš)

 * Memory connector returns updated records count (Simon Ho)

 * Add ctx.isNewInstance for "save" hooks (Miroslav Bajtoš)

 * deleteAll returns number of deleted records (Miroslav Bajtoš)

 * Use the correct way to iterate over an array (Raymond Feng)

 * DAO: Fix updateOrCreate to set persisted:true (Miroslav Bajtoš)

 * Reject CREATE with a duplicate id (Miroslav Bajtoš)

 * add tests for between in memory connector (Daniel B. Vasquez)

 * enable between filter for memory db connector (Daniel B. Vasquez)

 * fix #429 Multiple Models can't mixin same class (Clark Wang)
2015-03-27 18:03:08 +01:00
Raymond Feng c340f416b1 Merge pull request #539 from fabien/fix/tiny-return-scope
Return scope object from DAO.scope
2015-03-27 09:26:50 -07:00
Miroslav Bajtoš abba2a88d9 Merge pull request #540 from strongloop/fix/update-delete-all-details
Code cleanup in updateAll/deleteAll
2015-03-27 08:58:47 +01:00
Miroslav Bajtoš 3ea2ac9f68 Merge pull request #538 from strongloop/fix/browser-bundle-size
Remove all usages of lodash
2015-03-26 19:20:41 +01:00
Miroslav Bajtoš a70a1b255a Code cleanup in updateAll/deleteAll
Rename the second callback argument to `info` to make its purpose more
clear. Fix jsdoc comments, note that these comments are NOT shown
on http://apidocs.strongloop.com/.
2015-03-26 19:01:25 +01:00
Fabien Franzen bbce005d12 Return scope object from DAO.scope 2015-03-26 15:39:26 +01:00
Miroslav Bajtoš 5d8b3323ad Remove all usages of lodash.
This commit is dropping lodash in favour of hand-written implementation
based on ES5 Array methods. As a result, the size of the (unminified)
loopback browser bundle is decreased by approx 360KB.
2015-03-26 09:33:48 +01:00
Simon Ho b5188a5af4 Merge pull request #537 from strongloop/cleanup/update-and-delete-tests
Clean up delete and update tests
2015-03-24 21:40:46 -07:00
Simon Ho 311ab293d2 Clean up delete and update tests 2015-03-24 21:30:40 -07:00
Simon Ho e13c0cdc12 Merge pull request #536 from strongloop/cleanup/manipulation-test-wording
Clean up wording in update/delete tests
2015-03-24 12:22:01 -07:00
Simon Ho f7540edf8a Clean up wording in update/delete tests 2015-03-24 12:15:35 -07:00
Simon Ho d64d35faf0 Merge pull request #535 from strongloop/cleanup/wording-in-update-test
Fix wording in update test
2015-03-24 11:49:00 -07:00
Simon Ho 8467243e63 Fix wording in update test 2015-03-24 11:47:13 -07:00
Raymond Feng 58e7c4e90b Merge pull request #534 from fabien/fix/embeds-many-destroy-all
Properly support embedsMany destroyAll
2015-03-24 09:58:02 -07:00
Raymond Feng 5e0451eef0 Merge pull request #443 from clarkorz/fix/findOrCreate-ThroughModel
Always use findOrCreate when creating a through model
2015-03-24 09:56:07 -07:00
Fabien Franzen aa5943f6b0 Properly support embedsMany destroyAll 2015-03-24 15:39:55 +01:00
Simon Ho 77ff8541cc Merge pull request #530 from strongloop/fix/clean-up-delete-and-update-mainipulation-tests
Clean up update/delete manipulation tests
2015-03-23 14:54:53 -07:00
Simon Ho 3f97586455 Clean up update/delete manipulation tests 2015-03-23 14:41:38 -07:00
Miroslav Bajtoš 48509ef6a6 Merge pull request #528 from strongloop/fix/regression-in-prototype-save
Fix regression in DAO.prototype.save
2015-03-23 09:21:56 +01:00
Miroslav Bajtoš 35b549543d test: fix test failure in MySQL connector
Fix a test using a string Person.id value to use a numeric value
instead, in order to support connectors that use numeric ids by default.
2015-03-23 09:18:46 +01:00
Miroslav Bajtoš 1fbaf4e382 Improve test failure messages
Replace

    foo.count.should.equal(X)
    Uncaught TypeError: Cannot read property 'should' of undefined

with

    foo.should.have.property('count', X)`
    Uncaught AssertionError: expected 0 to have property count
2015-03-23 08:44:53 +01:00
Miroslav Bajtoš f7dc6fab90 Fix regression in prototype.save
ffcaa4e7 added a "data" argument to the callback function, which
shadowed the original data with the data returned by a connector.
Not all connectors are returning a data object though, in which case
the model instance ("this" object) is updated with wrong values.

This commit fixes the problem by renaming the second callback argument
to "unusedData".
2015-03-23 08:34:21 +01:00
Raymond Feng 99396387ee Merge pull request #525 from fabien/fix/embeds-one-remoting
Enable more CRUD remoting methods for embedsOne
2015-03-22 07:56:13 -07:00
Raymond Feng 268c04e14f Merge pull request #524 from fabien/feature/scope-findOne
Implement scope.findOne
2015-03-22 07:55:15 -07:00
Fabien Franzen 73f4a1bbe6 Enable more CRUD remoting methods for embedsOne 2015-03-21 16:23:46 +01:00
Fabien Franzen 8199767a8a Implement scope.findOne 2015-03-21 13:44:06 +01:00
Clark Wang 09ee38d613 use findOrCreate for HasManyThrough#create
see strongloop/loopback-connector-mongodb#92

Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2015-03-21 11:49:28 +08:00
Raymond Feng 5d0b745f31 Merge pull request #520 from fabien/feature/scope-find-by-id
Implement scope.findById
2015-03-20 12:00:56 -07:00
Raymond Feng 2f0561a7a8 Merge pull request #514 from fabien/feature/relation-methods
Enable defineMethod for singular relations
2015-03-20 11:57:45 -07:00
Raymond Feng 4ac227b052 Merge pull request #522 from strongloop/feature/enhance-id-comparison-for-updateAttributes
Enhance id comparision for updateAttributes
2015-03-20 11:06:57 -07:00
Raymond Feng 6a40a8a5e5 Enhance id comparision for updateAttributes
string/number and MongoDB ObjectID equality are now allowed.
2015-03-20 11:06:24 -07:00
Miroslav Bajtoš 84d538c1ca Merge pull request #515 from strongloop/feature/isNewInstance
Add ctx.isNewInstance for "save" hooks
2015-03-20 18:33:55 +01:00
Fabien Franzen b2db020057 Merge branch 'feature/relation-methods' of https://github.com/fabien/loopback-datasource-juggler into feature/relation-methods 2015-03-20 18:16:20 +01:00
Fabien Franzen 54781f376e Enable custom methods on singular relations 2015-03-20 18:15:58 +01:00
Fabien Franzen 34acc6c50a Implement scope.findById 2015-03-20 16:37:46 +01:00
Miroslav Bajtoš 112f2bd652 Merge pull request #518 from strongloop/fix/transient-connector-updateAll-result
Fix updateAll callback in "transient" connector
2015-03-20 08:55:54 +01:00
Miroslav Bajtoš 94e6d893a7 Fix updateAll callback in "transient" connector
Fix the implementation to return an object as the result,
that's the expected API since 04f35b3.
2015-03-20 08:34:58 +01:00
Simon Ho 84448bb0dc Merge pull request #502 from strongloop/feature/memory-connector-returns-updated-record-count
Memory connector returns updated records count
2015-03-19 16:02:00 -07:00
Simon Ho 04f35b31b4 Memory connector returns updated records count
The memory connector now includes the number of updated items in its callback
when updating records.
2015-03-19 15:40:14 -07:00
Raymond Feng a8d8556dcc Merge pull request #499 from clarkorz/fix/merge-mixins
fix #429 Multiple Models can't mixin same class
2015-03-19 13:21:22 -07:00
Miroslav Bajtoš e83edf8555 Merge pull request #511 from strongloop/feature/report-count-of-deleted-instances
deleteAll returns number of deleted records
2015-03-19 19:01:30 +01:00
Miroslav Bajtoš ffcaa4e76e Add ctx.isNewInstance for "save" hooks
"before save" hooks provide "ctx.isNewInstance" whenever "ctx.instance"
is set. Possible values:
 - true for all CREATE operations
 - false for all UPDATE operations
 - undefined for "prototype.save"

"after save" hooks provide "ctx.isNewInstance" whenever "ctx.instance"
is set. Possible values:
 - true after all CREATE operations
 - false after all UPDATE operations
 - undefined after "updateOrCreate" and "save"

Note: both "updateOrCreate" and "prototype.updateAttributes"
don't provide `ctx.instance` to "before save" hooks, therefore
`ctx.isNewInstance` it not provided either.
2015-03-19 18:05:24 +01:00
Miroslav Bajtoš d731252941 deleteAll returns number of deleted records
The number is returned as `data.ctx` to `cb(null, data)`.
2015-03-19 17:54:22 +01:00
Miroslav Bajtoš ae3dc3cec2 Merge pull request #510 from strongloop/fix/duplicate-create
Reject CREATE with a duplicate id
2015-03-19 17:37:01 +01:00
Fabien Franzen 8f88a42395 Enable custom methods on singular relations 2015-03-19 17:13:18 +01:00
Raymond Feng 579895d1b3 Merge pull request #513 from strongloop/feature/fix-issue-512
Use the correct way to iterate over an array
2015-03-18 08:22:06 -07:00