Nick Duffy
a23076d3a8
Add ilike and nilike operators
...
Closes #633
2016-10-12 18:31:31 -06:00
Amir Jafarian
e42b1327aa
Fix JSDoc issue
2016-10-11 12:15:35 -04:00
Amirali Jafarian
66f27b9b83
Merge pull request #1094 from strongloop/newInstance_loade_updateAttributes
...
Add 'isNewInstance' for updateAttributes
2016-09-21 09:23:57 -04:00
Amir Jafarian
fec7742a69
Add 'isNewInstance' for updateAttributes
...
* Add 'isNewInstance' to loaded hook for updateAttributes
2016-09-19 16:56:15 -04:00
David Cheung
805db78e19
Strict mode now always return validationError
...
- Deprecation of strict:validate and strict:throw
- When strict mode is enabled, it will now always
return validation error (previous strict:validate)
2016-09-19 10:27:24 -04:00
Amir Jafarian
2830062259
Disable `strict` for a few files
...
*Disable `strict` for a few files to disappear warnings
2016-08-26 09:54:31 -04:00
Amir Jafarian
aa6d28268b
Auto-update by eslint --fix
2016-08-22 15:12:25 -04:00
Sonali Samantaray
37541dd178
upsertWithWhere feature support in juggler DAO
2016-08-16 18:06:01 +05:30
Amir-61
1e57d4f316
Merge pull request #1034 from strongloop/err_connector_not_implements_replaceById
...
Return error if the connector does not implement
2016-08-09 14:01:58 -04:00
Amir Jafarian
327c785347
Return error if the connector does not implement
...
* Return error if the connector does not implement `replaceById`
2016-08-09 10:37:15 -04:00
Amir Jafarian
d181fd0671
Fixup globalization
2016-08-08 15:34:41 -04:00
Richard Pringle
0b62dd94ea
Disallow bulk updateOrCreate.
2016-08-05 11:54:06 +02:00
Amir Jafarian
f2f9b4a6f8
Use g.f instead of utils.format
2016-08-03 10:47:40 -04:00
Amir Jafarian
4ce5b5d3a0
Support for globalization
2016-07-28 15:20:18 -04:00
Miroslav Bajtoš
699e0587d1
Ensure stable order of items in DAO.find()
...
When post-processing result of find operation, use "async.map"
instead of "async.each + array.push" to ensure the order of items
is preserved.
2016-07-13 14:55:49 +02:00
RobinBiondi
fbe58f7cf8
give options to validators #984
2016-06-24 14:44:43 -07:00
Amir Jafarian
7a8803cb38
Give warning if PK is changed in hooks
...
* Give warning if PK is changed in `before save` and `loaded`
operation hooks for replaceById
2016-06-08 11:56:19 -04:00
Candy
3daca1e960
Remove model events
2016-06-08 10:27:05 -04:00
Amir Jafarian
cae44f0458
Fix error message
...
*Fix error message when PK is changed in `replaceById`
2016-06-01 16:16:35 -04:00
Amir Jafarian
82546fdf47
Retun err for UPSERT if the connector returns err
2016-05-31 22:17:23 -04:00
Amir Jafarian
d9a3f6226a
Fix incompatibility between different connectors
...
* Fix incompatibility for replace methods between different connectors.
2016-05-27 13:45:24 -04:00
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š
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
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
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
Amir Jafarian
550cfa2a86
Refactor `updateAttributes`
2016-01-25 10:56:27 +01:00
Amir Jafarian
a5150265ec
Fix a bug when validation is off for findOrCreate
2016-01-08 16:47:38 -05: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
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
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
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
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
Simon Ho
57a9c40e16
Fix primary key checks
2015-08-27 13:59:43 -07:00
Simon Ho
cd71a37bfa
Relax id requirement for basic query operations
2015-08-20 02:57:53 -07:00
Raymond Feng
f5270c39c5
Refactor idEquals to utils
2015-08-17 12:49:38 -07:00
Simon Ho
d14721656f
Merge pull request #691 from strongloop/do-not-coerce-regexp-to-string
...
Do not coerce RegExp objects to strings
2015-08-14 09:14:05 -07:00
Simon Ho
e7e074f97b
Do not coerce RegExp objects to strings
...
Queries like `{where: {name: /John.*/i}}` should work. Notice there is no
`regexp` operator (ie. `{where: {name: {regexp: /John.*/i}}}`).
2015-08-13 16:16:48 -07:00
Fabien Franzen
2120e53f7f
Indicate result of destroyById/protototype.destroy
...
Return `info.count` to the callback to indicate whether the model
instance was deleted or not. When Model's `settings.strictDelete`
is true, return 404 error when the model instance was not found.
2015-08-10 17:38:46 +02:00
Raymond Feng
4d7bfc94cd
Fix error handling
2015-07-29 10:21:47 -07:00
Raymond Feng
ce57234d5e
Merge branch 'issue656-findLoadedAsync' of https://github.com/PradnyaBaviskar/loopback-datasource-juggler into PradnyaBaviskar-issue656-findLoadedAsync
2015-07-29 07:33:21 -07:00
Simon Ho
68dc1d821f
Remove try/catch from find function
2015-07-28 17:40:14 -07:00
Simon Ho
b2b5a0d920
Merge pull request #665 from strongloop/add-regex-support
...
Add support for RegExp operator
2015-07-28 15:22:02 -07:00
Simon Ho
b8f1598723
Add support for regex operator
2015-07-27 15:11:53 -07:00
Pradnya Baviskar
de0ca3c61f
Async 'loaded' hook for find
2015-07-27 18:58:29 +05:30
Raymond Feng
b08b6dd954
Merge pull request #650 from PradnyaBaviskar/issue-649
...
Fix 'persist' hook for updateAttributes()
2015-07-23 08:27:07 -07:00
Pradnya Baviskar
8a20e07b3d
Fix 'persist' hook for updateAttributes()
2015-07-23 15:25:50 +05:30
Fabien Franzen
a94993c097
Don't enforce strictness if allowExtendedOperators: true (MongoDB)
2015-07-22 17:09:04 +02:00
Fabien Franzen
c7caa0a7c1
Take strict: validate and throw settings into account
2015-07-21 13:33:42 +02:00
Fabien Franzen
8b06a9d39d
Filter attributes when strict: true
2015-07-20 11:59:07 +02:00
Bryan Clark
342bc2f782
prevent upsert overwriting default values with applyDefaultValues option
...
Creates a new applyDefaultValues option on the Model constructor
defaulting to true, the current behaviour.
Updates the dao module to pass `{ applyDefaultValues: false }` to the
Model constructor during the updateOrCreate method when we assume an
update is happening.
2015-07-14 09:08:10 -07:00
Raymond Feng
eb20eebe95
Fix the regression for date conversion
2015-07-03 09:29:26 -07:00
Raymond Feng
4206088fbc
Fix the regexp value for like/nlike
2015-07-02 23:22:36 -07:00
Raymond Feng
542afefb1d
Make sure operator/options are honored
2015-07-02 11:27:33 -07:00
Raymond Feng
50ac143cea
Merge pull request #652 from strongloop/feature/fix-objectid-coercion
...
Fix coercion from ObjectID to String
2015-07-02 10:21:03 -07:00
Raymond Feng
506abf134e
Merge pull request #642 from rus0000/rus0000-patch-1-fix-updateOrCreate-transaction
...
Fix updateOrCreate transaction propagation
2015-07-02 10:17:12 -07:00
Raymond Feng
eb6fa410fe
Fix coercion from ObjectID to String
2015-07-01 14:58:14 -07:00
Miroslav Bajtoš
293240d752
Merge pull request #599 from PradnyaBaviskar/issue-441
...
Add new hook 'loaded'
2015-06-24 16:35:50 +02:00
Rus1
17cac79b09
Fix updateOrCreate transaction propagation
2015-06-23 19:14:36 +03:00
Rus1
ca8012ba0a
Fix promise chaining in case of error
2015-06-23 19:08:46 +03:00
Pradnya Baviskar
20cf67d798
Add new hook 'loaded'
2015-06-23 12:04:46 +05:30
Pradnya Baviskar
3b0e77cb0a
Add new hook 'persist'
2015-06-10 16:19:13 +05:30
Raymond Feng
966bb56c31
Enhance fieldsToArray to consider strict mode
2015-05-19 22:32:03 -07:00
Raymond Feng
93a0342099
Add an optional `options` argument to relation methods
2015-05-16 11:52:17 -07:00
Raymond Feng
670a6e740d
Add transaction
2015-05-16 11:52:17 -07:00
Raymond Feng
5ef444e45d
Conditionally pass options to connector CRUD methods
2015-05-13 09:36:45 -07:00
Fabien Franzen
df7d221f31
Pass-through options from save to create
2015-05-10 10:44:22 +02:00
Miroslav Bajtoš
9bc79d2366
dao: support validateUpsert:false
...
- validateUpsert:true reports validation errors back to the callback
- validateUpsert:false does not call `isValid()` at all
- any other value report validation errors via `console.warn`
2015-05-05 08:24:08 +02:00
Miroslav Bajtoš
b642d52fbe
Merge pull request #565 from strongloop/feature/validate-upsert
...
Validate model on updateOrCreate (upsert).
2015-04-17 17:20:55 +02:00
Raymond Feng
988a929577
Extend findById to accept an optional filter object
2015-04-16 09:06:53 -07:00
Miroslav Bajtoš
3df62444d6
Validate model on updateOrCreate (upsert).
...
Fix the implementation of updateOrCreate (a.k.a. upsert) to validate
the model before calling the connector.
In order to preserve backwards compatibility, validation errors are
only logged via console.warn by default.
The correct behaviour, where validation errors fail the updateOrCreate
operation, can be enabled via new model setting "validateUpsert".
2015-04-16 09:09:54 +02:00
Miroslav Bajtoš
3a51510119
Code cleanup in lib/dao.js
...
Rename callback argument "result" to "info" to make it consistent
with other places where we use "info" too.
Remove traling whitespace.
2015-04-01 18:25:04 +02:00
Raymond Feng
44e5ad1fef
Merge pull request #549 from fabien/feature/hookstate-from-options
...
Allow passing in hookState from options
2015-03-30 14:35:34 -07:00
Fabien Franzen
1ab3d74ab5
Pass options in operation hooks context.
2015-03-30 18:03:42 +02:00
Pulkit Singhal
2891b5e5b3
check if id does not exist a bit more explicitly
...
if left as-is, ids with value of zero were treated as non-existent
2015-03-30 09:52:08 -05: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
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š
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š
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
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š
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š
ae3dc3cec2
Merge pull request #510 from strongloop/fix/duplicate-create
...
Reject CREATE with a duplicate id
2015-03-19 17:37:01 +01:00
Miroslav Bajtoš
6f11c2d717
DAO: Fix updateOrCreate to set persisted:true
...
Before this commit, the following code would not work:
Change.updateOrCreate({...}, function(err, ch) {
// somewhere later, modify "ch" and save the changes
ch.save(cb);
});
2015-03-16 18:26:42 +01:00