Commit Graph

1299 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
Miroslav Bajtoš 9bf60e0d74 fix 2016-06-03 16:29:39 -04:00
Amir Jafarian dddf0ee09a Retun err for UPSERT if the connector returns err 2016-06-02 08:31:13 -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
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
Simon Ho 65d6d6a508 Backport ESLint from master 2016-05-20 17:35:23 +02: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š 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 1eeacd0255 Fix `forceId` check for `replaceByIds` PR#896 2016-04-14 17:59:30 -04: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š 093a69328c Insert copyright headers 2016-04-06 16:51:49 +02:00
Miroslav Bajtoš 0d11186850 Improve error message on connector init error
[Back-port pull request #859]
2016-03-02 12:20:14 +01:00
Candy 3ed05426be Fix missing connector error msg for db2, cloudant for 2.x 2016-02-10 10:41:46 -05:00
Amir Jafarian ca766f1437 Implementtaion of replace
This includes:
*implementation of replaceAttributes
*implementtaion of replaceOrCreate
2016-02-04 16:05:11 -05:00
Amir Jafarian dbdf915334 Fix conversion for `updateAttributes` 2016-02-03 12:44:58 -05:00
Amir Jafarian 8ca67c3d48 Refactor `updateAttributes` 2016-01-25 11:15:18 -05:00
Miroslav Bajtoš 5fdd521985 Enhance "persisted" hook in DAO.updateAttributes
Add `isNewInstance:false` to the context reported by
DAO.updateAttributes()
2016-01-25 11:13:34 -05:00
Amir Jafarian 3bc2dacb1b Implement `findOrCreate` for memory connector 2016-01-20 11:51:47 -08:00
Amir Jafarian 2423db1571 Fix a bug when validation is off for findOrCreate 2016-01-20 11:51:47 -08:00
Farid Nouri Neshat 174237e6a6 Fix broken code fencings in the docs 2016-01-20 11:51:47 -08:00
Miroslav Bajtoš 80c3bd9d41 Merge pull request #752 from ernie58/optionalValidation
make automatic validation optional
2015-12-04 17:03:28 +01:00
Bert Casier 0f3f27af51 Make automatic validation optional
Make automatic validation optional on all CRUD methods in a loopback
model. This can be done in 2 ways

- set `automaticValidation` in the model settings

- set `validate` on the options passed when calling the crud methods

The options take precedence on the model setting.
By default the automatic validation remains true to be backwards
compatible
2015-12-03 16:34:25 +01:00
Raymond Feng bc825fafc4 Merge pull request #755 from zmijevik/zmijevik-feature/include-if-contains-results
fixes #753
2015-11-26 09:33:47 -08:00
Raymond Feng 3a3cb5b7cb Merge pull request #764 from eugene-frb/master
Capture includeHasMany() as a find()'s caller by findCaller option
2015-11-26 09:29:14 -08:00
Raymond Feng e1f20ee3ea Merge pull request #772 from Abebw/master
Ignored Error
2015-11-26 09:28:50 -08:00
Raymond Feng 486c1de1ba Merge pull request #715 from nennad/master
foreignKey dataLength fix
2015-11-26 09:28:08 -08:00
eugene-frb ba4600e564 Explicitly initialize column of partition by clause and pass it in find()'s options argument 2015-11-25 13:56:59 -08:00
Clark Wang 0ac70766eb silence a warning that introduced in bluebird 3.0
see http://bluebirdjs.com/docs/warning-explanations.html#warning-a-promise-was-created-in-a-handler-but-none-were-returned-from-it

Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2015-11-24 17:15:53 +08:00
Raymond Feng bd314e6a87 Merge branch 'with-simpe-and-fast-hasmany' of https://github.com/wertlex/loopback-datasource-juggler into wertlex-with-simpe-and-fast-hasmany 2015-11-23 15:21:18 -08:00
Abe BW 0334766490 fixed a bug where an error was sent to the updateAttributesCallback and then ignored 2015-11-23 14:07:35 -05:00
Michael Diguet d8678a1f03 Correction of a regression introduced by commit 632898b: when querying an empty array ([]) with a 'neq' filter, there were no matching. 2015-11-23 17:09:24 +01:00
eugene-frb 96020c7e7e Capture includeHasMany() as a find()'s caller by findCaller option
To replace incorrect location of capturing this condition in find() in
loopback-connector/lib/sql.js  proposed earlier in
https://github.com/strongloop/loopback-connector/pull/34.

Being set to 'includeHasMany', findCaller option triggers injection of
PARTITION BY clause in buildColumnNames() in
loopback-connector-mssql/lib/mssql.js only when find() function is
called to process include filter with 'has many' relation.
2015-11-19 11:10:52 -08:00
Joseph M. Persie 5ddb50aca4 fixes #753 2015-11-04 20:13:12 -05:00
Clark Wang b1b36ed44e fix typo 2015-11-04 14:58:28 +08:00
Clark Wang b993fb9466 fix global leak that mocha complains
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2015-11-04 14:19:47 +08:00
Wert_Lex d9918d526a dropped unused functions and tests fixed 2015-10-30 21:36:50 +06:00
Wert_Lex 2f31701655 One more comment 2015-10-30 21:19:37 +06:00
Wert_Lex 638002bc59 Looks better now 2015-10-30 21:15:48 +06:00
Raymond Feng d0072b68a1 Merge pull request #739 from mdartic/master
Fix filtering relations of a model with an order specified
2015-10-28 08:38:03 -07:00
Federico Rampazzo 2de499ccb0 Added missing callback when a model is not found 2015-10-28 09:15:32 +00:00
mdartic 7c22db6ea7 Filtering relations of a model with an order specified 2015-10-16 18:21:04 +02:00
Wert_Lex 1cab0164c2 home-written map extended with proper .set() method 2015-10-10 21:00:00 +05:00
Wert_Lex a5dd9c181a on the halfway to keeping original keys 2015-10-10 19:37:39 +05:00
Wert_Lex 0864bf7154 with updated map which stores original key and tests for them 2015-10-10 19:21:06 +05:00
Ryan Schumacher 94c3f9a432 Ability to define normalization of undefined query
Add datasource and model setting `normalizeUndefinedInQuery`
to determine how it will handle undefined values. Options:

- nullify : converts undefined to null
- throw : throw an error on undefined value
- ignore : strip the key where undefined value is found

The default operation is to strip the key.
2015-10-07 09:26:09 -07:00
James Cooke 6dac956cf8 findByIds would fail when an array of 0 length was passed as its first argument 2015-09-23 16:27:41 +01:00