Joshua Chaitin-Pollak
bb3812fbfb
Allow `after save` hook to see count of records changed ( #1231 )
...
* `after save` hook allows count of records changed
* Fix PR linter
2017-04-06 12:02:34 -04:00
Jonathan Sheely
21b08af7a3
Added notify flag for create and upsert ( #1277 )
...
* Added notify flag for create and upsert
* Code styling
* More code styling
* Added unit test for notify
* Fix PR linter
2017-04-05 13:23:26 -04:00
Mikhail
68b93e1074
Disallow regexp string in arrays for coerce ( #1279 )
...
Disallow regexp arrays for coerce
2017-03-22 20:29:01 -04:00
Diana Lau
eb2cb315e6
FindOrCreate missing error callback
2017-03-20 10:32:09 -04:00
Dimitris
6f8ecfdf5c
Fixes #1230 coerceArray converts empty Objects ( #1269 )
2017-03-20 10:05:11 -04:00
Kevin Delisle
248aaf0541
dao: catch errors on Model creation in find
2017-03-16 17:26:53 -04:00
Kevin Delisle
a6c5802940
dao: catch sync errors on setAttributes
...
Wrap inst.setAttributes in try-catch to prevent synchronous errors
from crashing the application.
2017-03-16 17:26:53 -04:00
Loay
46318d2094
Update error message
2017-03-16 11:02:08 -04:00
Rémi Bèges
9afaa9a66e
Fix id update error message formatting
...
Error is raised when trying to update an id property while forceId
is set to true
2017-02-15 18:26:32 +01:00
Miroslav Bajtoš
d809260799
Upgrade eslint-config, fix new violations
2017-02-01 12:45:56 +01:00
Matteo Padovano
733ad1a024
Refactor logic of options.allowExtendedOperators
...
Implement logic to allowExtendedOperators options
per request, per Model and Datasource.
2017-01-30 00:05:56 +01:00
Loay
44a5a7ad81
Fix forceId validation error
2017-01-26 16:52:19 -05:00
Heath Morrison
2377792c22
Coerce array-like objects into arrays
...
The query-string parser used by express
https://github.com/ljharb/qs#parsing-arrays
limits the size of arrays that are created from query strings to 20
items. Arrays larger than that are converted to objects using numeric
indices.
This commit fixes the coercion algorithm used by queries to
treat number-indexed objects as arrays. We still maintain a strict
understanding of an "array-like object" to limit the opportunity for
subtle bugs. In particular, the presence of non-index keys is an
indication that the object was not intended to be interpreted as
an array.
2017-01-10 14:46:41 +01:00
Miroslav Bajtoš
454bf93aaf
Upgrade eslint-config to 7.x
...
Also upgrade eslint itself to 3.x.
2017-01-06 13:33:54 +01:00
Miroslav Bajtoš
779cf6a370
Honour allowExtendedOperators in "DAO.find"
...
Modify the coercion of filter.where to hounour "allowExtendedOperators"
and don't coerce property values of type object (extended operators).
2016-12-06 10:28:40 +01:00
Amir Jafarian
54d0f5b53d
Add support for `loaded` hook
...
* Add support for loaded hook for DAO.find with near filter
2016-10-28 11:46:46 -04:00
Heath Morrison
266e9f5a9a
Continue _coerce after logical operators
2016-10-25 23:09:46 +03:00
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