Commit Graph

2494 Commits

Author SHA1 Message Date
Dimitris Halatsis af8cf19242 Persist changes on parent for embedsOne
Allow direct save of changes on embedded model to be persisted on
parent document.

    Person.embedsOne(Address);
    Person.findById(someId)
      .then(function(p){
        var address = p.addressItem();
        address.street = 'new street'
        // This will now persist changes on parent document
        return address.save();
      })
2016-06-07 17:09:34 +02:00
Raymond Feng baef033115 2.46.1
* fix (Miroslav Bajtoš)
 * Retun err for UPSERT if the connector returns err (Amir Jafarian)
 * Fix error message (Amir Jafarian)
 * Add test's description (Amir Jafarian)
 * ModelBuilder: add new setting strictEmbeddedModels (Dimitris Halatsis)
 * Fix incompatibility between different connectors PR#938 (Amir Jafarian)
 * travis: add v4, v6, drop io.js (Miroslav Bajtoš)
 * Backport ESLint from master (Simon Ho)
 * Set ESLint as devdep (Simon Ho)
 * Use mocha instead of Makefile for testing (Simon Ho)
 * Implement operation hooks for EmbedsMany methods (Miroslav Bajtoš)
 * Implement operation hooks for EmbedsOne methods (Miroslav Bajtoš)
 * eslint config 2.0 + remove extra empty lines (Miroslav Bajtoš)
 * Fix eslint errors in memory connector (Miroslav Bajtoš)
 * Run `eslint --fix` with config from master (Miroslav Bajtoš)
 * Test coverages for hashed password (Amir Jafarian)
 * Fix `forceId` check for `replaceByIds` PR#896 (Amir Jafarian)
 * test: extract hook-monitor helper (Miroslav Bajtoš)
 * test: extract uid-generator helper (Miroslav Bajtoš)
 * test: extract context-test-helpers (Miroslav Bajtoš)
 * Define `patch` aliases (Amir Jafarian)
2016-06-03 14:53:00 -07:00
Amir-61 be17bedcc5 Merge pull request #962 from strongloop/fix2x
fix
2016-06-03 17:46:10 -04:00
Miroslav Bajtoš 9bf60e0d74 fix 2016-06-03 16:29:39 -04:00
Amir-61 534a0e5892 Merge pull request #957 from strongloop/upsert_err
Retun err for UPSERT if the connector returns err
2016-06-02 08:37:02 -04:00
Amir Jafarian dddf0ee09a Retun err for UPSERT if the connector returns err 2016-06-02 08:31:13 -04:00
Amir-61 7aa9cb357d Merge pull request #959 from strongloop/fix_err_msg
Fix error message
2016-06-01 21:00:26 -04:00
Amir-61 2e11dbfe35 Merge pull request #958 from strongloop/Add_test_desc
Add test's description
2016-06-01 20:29:46 -04:00
Amir Jafarian c093648525 Fix error message
* Fix error message when PK is changed in `replaceById`
2016-06-01 16:26:41 -04:00
Amir Jafarian 05ea5467cd Add test's description 2016-06-01 16:05:56 -04:00
Dimitris Halatsis 39907c6421 ModelBuilder: add new setting strictEmbeddedModels
The setting controls the strict mode used for embedded property types,
for example the type of "address" property in this model definition:

    modelBuilder.define('TestEmbedded', {
      name: 'string',
      address: {
        street: 'string',
      },
    });

[back-port of #955]
2016-06-01 13:42:55 +02:00
Amir Jafarian 0d5cff5a0a Fix incompatibility between different connectors PR#938
* Fix incompatibility for replace methods between different connectors.
2016-05-28 09:12:30 -04:00
Miroslav Bajtoš a9f69bcbc6 travis: add v4, v6, drop io.js
[back-port of #943]
2016-05-23 11:24:28 +02:00
Miroslav Bajtoš a6f499703e Merge pull request #928 from strongloop/backport/eslint
Backport eslint from master
2016-05-23 11:03:32 +02:00
Simon Ho 65d6d6a508 Backport ESLint from master 2016-05-20 17:35:23 +02:00
Simon Ho ee6c0ad461 Set ESLint as devdep 2016-05-10 13:37:44 -07:00
Simon Ho 4c7d862cee Use mocha instead of Makefile for testing 2016-05-10 12:06:34 -07:00
Miroslav Bajtoš bec9142100 Implement operation hooks for EmbedsMany methods
create() triggers
 - before save
 - after save

updateById() triggers
 - before save
 - after save

destroy() triggers
 - before delete
 - after delete

The implementation here is intentionally left with less features
than the regular DAO methods provide, the goal is to get a partial
(but still useful!) version released soon.

Limitations:

 - `before save` & `after save` hooks don't provide `ctx.isNewInstance`
 - async validations are not supported yet
 - `persist` and `loaded` hooks are not triggered at all

 - `before delete` hook does not provide `ctx.where` property and
    it's not possible to change the outcome of `destroy()` using this
    hook. Note that regular DAO does support this.

 - updating embedded instances triggers update of the parent (owning)
   model, which is correct and expected. However, the context provided
   by `before save` and `after save` hooks on the parent model is sort of
   arbitrary and may include wrong/extra data. The same probably applies
   to the scenario when deleting embedded instances triggers update of
   the parent model.

[back-port of #911]
2016-04-28 10:15:14 +02:00
Miroslav Bajtoš f65b542dab Implement operation hooks for EmbedsOne methods
create() triggers
 - before save
 - after save

udpate() triggers
 - before save
 - after save

destroy() triggers
 - before delete
 - after delete

The implementation here is intentionally left with less features
than the regular DAO methods provide, the goal is to get a partial
(but still useful!) version released soon.

[back-port of #904]
2016-04-20 10:30:56 +02:00
Miroslav Bajtoš 289eac7565 eslint config 2.0 + remove extra empty lines
Upgrade eslint-config-loopback to ^2.0.0.

Remove extra empty lines to make `npm run lint` pass again.

[back-port of #909]
2016-04-19 17:06:04 +02:00
Miroslav Bajtoš feca7481e9 Merge pull request #905 from strongloop/eslint-autofix-2x
Eslint autofix for 2.x
2016-04-18 16:41:28 +02:00
Miroslav Bajtoš 4000b70e38 Fix eslint errors in memory connector 2016-04-18 16:00:04 +02:00
Miroslav Bajtoš a5187765f6 Run `eslint --fix` with config from master 2016-04-18 16:00:04 +02:00
Amir Jafarian fd1afdf6e6 Test coverages for hashed password
* Test coverages for hashed password for replaceAttributes
* Test coverages for hashed password for updateAttribute
2016-04-15 12:58:36 -04:00
Amir Jafarian 1eeacd0255 Fix `forceId` check for `replaceByIds` PR#896 2016-04-14 17:59:30 -04:00
Miroslav Bajtoš 0de6dd72a4 Merge pull request #902 from strongloop/refactor/context-test-helpers
test: extract helpers used in tests for operation hooks
2016-04-13 15:16:26 +02:00
Miroslav Bajtoš 7d7662bfef test: extract hook-monitor helper 2016-04-13 15:15:55 +02:00
Miroslav Bajtoš 90f04181a4 test: extract uid-generator helper 2016-04-13 15:15:55 +02:00
Miroslav Bajtoš 09ad9e4711 test: extract context-test-helpers 2016-04-13 15:15:53 +02:00
Amir Jafarian 7773963b62 Define `patch` aliases
*Define `patchOrCreate` as an alias for `updateOrCreate`
*Define `PatchAttributes` as an alias for `updateAttributes`
2016-04-12 16:32:17 -04:00
Miroslav Bajtoš 7eee0afb52 2.46.0
* Insert copyright headers (Miroslav Bajtoš)
 * Relicense as MIT only (Miroslav Bajtoš)
 * Fix Mongo compatibility issue (Amir Jafarian)
 * Add automigrate to setup tables for replace test cases (Amir Jafarian)
 * Remove next tag (2.x) (Amir Jafarian)
 * Allow test folder to be published (Amir Jafarian)
 * Fix tests for mysql (Amir Jafarian)
 * Add forgotten unit test (Miroslav Bajtoš)
 * Improve error message on connector init error (Miroslav Bajtoš)
 * Update describe-operation-hooks (Miroslav Bajtoš)
 * Fix missing connector error msg for db2, cloudant for 2.x (Candy)
 * Implementtaion of replace (Amir Jafarian)
2016-04-07 09:12:48 +02:00
Miroslav Bajtoš fbd8b67766 Merge pull request #891 from strongloop/copyright-2.x
Relicense as MIT only
2016-04-07 09:11:04 +02:00
Miroslav Bajtoš 093a69328c Insert copyright headers 2016-04-06 16:51:49 +02:00
Miroslav Bajtoš 216a537a23 Relicense as MIT only 2016-04-06 16:50:02 +02:00
Amir Jafarian 81abac19f3 Fix Mongo compatibility issue
*Fix Mongo compatibility issue for replaceOrCreate
2016-03-30 11:26:35 -04:00
Amir Jafarian 0aa3a2f407 Add automigrate to setup tables for replace test cases 2016-03-29 13:45:17 -04:00
Amir-61 000b5b002a Merge pull request #882 from strongloop/remove_next_tag_2.x
Remove next tag (2.x)
2016-03-29 11:04:56 -04:00
Amir Jafarian de9e0e81b2 Remove next tag (2.x) 2016-03-29 10:58:11 -04:00
Amir Jafarian a73521f161 Allow test folder to be published 2016-03-28 23:32:47 -04:00
Amir Jafarian da9b77a015 Fix tests for mysql 2016-03-28 16:46:11 -04:00
Miroslav Bajtoš 96a9759d6d Add forgotten unit test
The test should have been added as part of #859

[Back-port pull request #862]
2016-03-02 13:15:44 +01:00
Miroslav Bajtoš 0d11186850 Improve error message on connector init error
[Back-port pull request #859]
2016-03-02 12:20:14 +01:00
Miroslav Bajtoš 08faf9f5de Update describe-operation-hooks
- drop custom findOrCreate implementation - memory connector provides
   an atomic implementation out of the box now
 - add new methods `replaceOrCreate` and `replaceByID`
 - fix error reporting to include the stack trace in the console output

[back-port of pull request #847]
2016-02-22 10:46:10 +01:00
Miroslav Bajtoš 0008a1dd6d Merge branch '2.45.x' into 2.x 2016-02-22 10:43:39 +01:00
Miroslav Bajtoš 1268e0f9ac 2.45.2
* Fix missing connector error msg for db2, cloudant for 2.x (Candy)
2016-02-22 10:43:10 +01:00
Candy 1cbeb10c96 Fix missing connector error msg for db2, cloudant for 2.x 2016-02-22 10:42:28 +01:00
Miroslav Bajtoš 27526d90ed Merge branch '2.45.x' into 2.x 2016-02-15 10:23:25 +01:00
Miroslav Bajtoš be9853686d 2.45.1
* Fix conversion for `updateAttributes` (Amir Jafarian)
2016-02-15 10:22:51 +01:00
Candy 79990e31b0 Merge pull request #853 from strongloop/add_new_connectors_2x
Fix missing connector error msg for db2, cloudant for 2.x
2016-02-10 11:10:33 -05:00
Candy 3ed05426be Fix missing connector error msg for db2, cloudant for 2.x 2016-02-10 10:41:46 -05:00