Commit Graph

1309 Commits

Author SHA1 Message Date
Sequoia McDowell ae7a5df47b Document promise support for DAO::find
It was previously completely undocumented. There are additional methods that add promises but I figure accurately documenting some is better than none. :)
2016-05-11 09:58:22 -04:00
Miroslav Bajtoš 8ad53a4c0e DAO.create: don't return the instance
Simplify DataAccessObject.create() and stop returning the
instance/array of instances. Users should always use callback (or
returned promise) to get the instance(s) created.
2016-04-29 14:16:06 +02:00
Miroslav Bajtoš 9bde8f859b 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.
2016-04-27 11:04:15 +02:00
Miroslav Bajtoš b86615e2b7 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.
2016-04-20 09:36:12 +02:00
Miroslav Bajtoš c7f34c3452 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.
2016-04-19 16:11:43 +02:00
Amir Jafarian 4e6351b856 Fix `forceId` check for `replaceById` 2016-04-14 15:05:56 -04:00
Amir Jafarian e9afb46eda Fix `notify` bugs for `find` 2016-04-13 13:34:51 -04:00
Amir Jafarian 4bb284bb60 Define `patch` aliases
*Define `patchOrCreate` as an alias for `updateOrCreate`
*Define `PatchAttributes` as an alias for `updateAttributes`
2016-04-12 13:40:01 -04:00
Simon Ho 85ed753609 Merge pull request #786 from strongloop/feature/fix-610
Partition by foreign key for pagination
2016-04-06 14:01:08 -07:00
Raymond Feng 84da11f98e Partition by foreign key for pagination
See https://github.com/strongloop/loopback-datasource-juggler/issues/610
2016-04-05 17:21:48 -07:00
Raymond Feng daaf5e381a Merge branch 'discover-hang' of https://github.com/TorchlightSoftware/loopback-datasource-juggler into TorchlightSoftware-discover-hang
# Conflicts:
#	lib/datasource.js
#	test/discovery.test.js
2016-04-05 16:18:25 -07:00
Raymond Feng e321bafdf9 Fix style errors 2016-04-05 16:11:25 -07:00
Raymond Feng b7543e9402 Merge pull request #860 from horiaradu/master
fix nin support for in memory datasource
2016-04-05 15:42:07 -07:00
Miroslav Bajtoš 27c6279d6c fix remaining eslint issues 2016-04-05 15:25:34 +02:00
Miroslav Bajtoš 39e04a1756 eslint --fix 2016-04-05 15:25:34 +02:00
Ryan Graham c467b43c38 Insert copyright headers 2016-04-04 18:14:03 -07:00
bitmage 57afba8c51 support custom field settings under the connector's namespace 2016-03-16 09:17:55 -07:00
gunjpan 6db59cba6f Update error message for missing connector 2016-03-15 17:01:37 -04:00
Horia Radu a3ae44aca0 fix nin support for in memory datasource 2016-02-27 10:27:09 +02:00
Miroslav Bajtoš 9dcf30efe9 Improve error message on connector init error 2016-02-26 14:00:24 +01:00
Candy 686ce5bae3 Fix missing connector error msg for db2, cloudant 2016-02-09 16:19:57 -05:00
Amir Jafarian 2281e95940 Implementtaion of replace
This includes:
*implementation of replaceAttributes
*implementtaion of replaceOrCreate
2016-02-03 16:06:35 -05:00
Amir Jafarian ef232eae0a Fix conversion for `updateAttributes` 2016-02-03 12:04:51 -05:00
Jue Hou 0d9eebe3bb Prevent constructor to be property name 2016-02-02 11:51:05 -05:00
Amir Jafarian 550cfa2a86 Refactor `updateAttributes` 2016-01-25 10:56:27 +01:00
bitmage b556d96148 discoverSchemas returns an error when modelName is not found,
discoverSchema forwards that error and does not hang when no columns,
no errors are returned
2016-01-22 10:41:06 -07:00
Amir Jafarian ba7161b39e Implement `findOrCreate` for memory connector 2016-01-16 18:46:53 -05:00
Amir Jafarian a5150265ec Fix a bug when validation is off for findOrCreate 2016-01-08 16:47:38 -05:00
Jue Hou 853ca03491 Use bluebird in utils.js
Replace `global.Promise` with `bluebird`
2016-01-07 15:27:33 -05:00
Miroslav Bajtoš b509c759c4 Merge pull request #796 from strongloop/fix/various
Various fixes in operation hooks
2016-01-05 11:08:35 +01:00
Farid Nouri Neshat 93c9f63b0d Fix broken code fencings in the docs 2015-12-28 23:03:37 +08:00
Miroslav Bajtoš e9899a93cf Enhance "persist" hook in DAO.updateOrCreate
Report `ctx.isNewInstance` when the connector provides this info.
2015-12-18 16:08:38 +01:00
Miroslav Bajtoš fd9bef4aa7 Enhance "persisted" hook in DAO.updateAttributes
Add `isNewInstance:false` to the context reported by
DAO.updateAttributes()
2015-12-18 16:08:01 +01:00
Miroslav Bajtoš 3028329126 "loaded" hook in DAO.find: ctx.data, not instance
Fix the implementation od DAO.find to provide "ctx.data" to the
"loaded" hook.
2015-12-18 15:54:35 +01: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