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
Dimitris Halatsis
ea2266e453
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();
})
[forward-port of #949 ]
2016-06-07 17:24:59 +02:00
Amir Jafarian
8f2077e344
Fix
2016-06-03 18:00:21 -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
Dimitris Halatsis
b7ba73f1b1
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',
},
});
2016-06-01 13:12:50 +02:00
Miroslav Bajtoš
6ec66a7e4a
Merge pull request #950 from strongloop/add_test_description
...
Add test's description
2016-06-01 09:57:53 +02:00
Alex Pitigoi
423db34bf3
fix error handling when applying undefined mixins
2016-05-31 12:24:04 -04:00
Amir Jafarian
2b6ced06a1
Add test's description
2016-05-31 11:13:28 -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
Alex Pitigoi
0e89a9c837
fix avoid duplicate record on scope with promise
2016-05-19 15:47:31 -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
11ef948854
Test coverages for hashed password
...
* Test coverages for hashed password for replaceAttributes
* Test coverages for hashed password for updateAttribute
2016-04-14 18:27:19 -04: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
Miroslav Bajtoš
09f4c7d026
test: extract hook-monitor helper
2016-04-13 13:54:17 +02:00
Miroslav Bajtoš
616a81b496
test: extract uid-generator helper
2016-04-13 13:53:31 +02:00
Miroslav Bajtoš
3435b43a5c
test: extract context-test-helpers
2016-04-13 13:52:54 +02: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
Miroslav Bajtoš
fc1aefb8d4
Add eslint as "npm run lint" and "posttest" hook
2016-04-05 15:25:34 +02:00
Ryan Graham
c467b43c38
Insert copyright headers
2016-04-04 18:14:03 -07:00
Amir Jafarian
5b6bffb5b3
Fix Mongo compatibility issue
...
*Fix Mongo compatibility issue for replaceOrCreate
2016-03-29 14:42:13 -04:00
Amir Jafarian
8b8d474b92
Add automigrate to setup tables for replace test cases
2016-03-29 12:21:10 -04:00
Amir-61
fc27aa9561
Merge pull request #868 from strongloop/mySQL-fix-tests
...
Fix tests for mysql
2016-03-28 15:57:27 -04:00
bitmage
57afba8c51
support custom field settings under the connector's namespace
2016-03-16 09:17:55 -07:00
Amir Jafarian
024bff6a91
Fix tests for mysql
2016-03-08 20:39:25 -05:00
Miroslav Bajtoš
28e07d9df3
Add forgotten unit test
...
The test should have been added as part of #859
2016-03-02 12:32:11 +01:00
Horia Radu
a3ae44aca0
fix nin support for in memory datasource
2016-02-27 10:27:09 +02:00
Amir Jafarian
2281e95940
Implementtaion of replace
...
This includes:
*implementation of replaceAttributes
*implementtaion of replaceOrCreate
2016-02-03 16:06:35 -05:00
Jue Hou
0d9eebe3bb
Prevent constructor to be property name
2016-02-02 11:51:05 -05: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
Tom Kirkpatrick
61047a028d
Add unit test to verify fix for #754
2016-01-21 18:00:45 -08:00
Amir Jafarian
ba7161b39e
Implement `findOrCreate` for memory connector
2016-01-16 18:46:53 -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
Simon Ho
5d453b5038
Revert "Correct syntax for should and more"
...
This reverts commit 62de2ed69e
.
2015-12-23 15:41:16 -08:00
Simon Ho
b63133d1d6
Fix test for shouldjs 8.0.2 upgrade
2015-12-22 15:03:50 -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
Amir Jafarian
62de2ed69e
Correct syntax for should and more
...
This fixes lots of failures in connectors
2015-12-16 16:24:48 -05:00
Simon Ho
9cfda16194
Fix failing test for MongoDB connector
2015-12-09 12:58:21 -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
6f7fc5030a
Merge branch 'fix_update_attributes_error' of https://github.com/wpjunior/loopback-datasource-juggler into wpjunior-fix_update_attributes_error
2015-11-26 09:31:40 -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
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
Raymond Feng
d7bbd7e215
Fix the typo
2015-11-17 13:27:41 -08:00
Wilson Júnior
c26b857a87
UpdateAttributes: Raises an error if database fails
...
Signed-off-by: Wilson Júnior <wilsonpjunior@gmail.com>
2015-11-17 17:10:11 -02:00
Wert_Lex
d9918d526a
dropped unused functions and tests fixed
2015-10-30 21:36:50 +06:00
Wert_Lex
638002bc59
Looks better now
2015-10-30 21:15:48 +06:00
mdartic
ef7fe45d9c
Rewrite of variable
2015-10-16 18:25:23 +02:00
mdartic
7c22db6ea7
Filtering relations of a model with an order specified
2015-10-16 18:21:04 +02: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
Raymond Feng
1e035c657e
Fix the test so that it works across DBs
2015-09-11 11:15:00 -07:00
Raymond Feng
a6519bb2ca
Fix id comparision in tests so that they work with mongodb object id
2015-09-08 09:53:02 -07:00
Raymond Feng
207edd5eec
Merge pull request #687 from sklyukin/master
...
primaryKey to hasOne relation
2015-09-08 09:20:42 -07:00
Bram Borggreve
fb11c78be0
Add support for using UUID V4 as defaultFn
2015-09-02 16:39:00 +02:00
sklyukin
d0f9b760f5
primaryKey for hasMany and belongsTo relations
2015-09-01 19:03:02 +05:00
sklyukin
483cd873e7
primaryKey to hasOne relation
2015-09-01 01:31:28 +05:00
Laurent Villeneuve
cb78c8ef96
Add direct copmarison value for array matching
2015-08-27 23:56:49 -04:00
Laurent Villeneuve
632898b022
Add support for matching array values à la mongo.
2015-08-27 23:32:53 -04:00
Raymond Feng
682f6340d3
Optimze automigrate() to cut the test time signicantly
2015-08-27 15:59:58 -07:00
Simon Ho
57a9c40e16
Fix primary key checks
2015-08-27 13:59:43 -07:00
Wert_Lex
fb56915371
Dirty merge. Tests are broken
2015-08-24 16:07:43 +03:00
Wert_Lex
e585021586
include utils add. Tests ported to should.js
2015-08-24 15:41:04 +03:00
Simon Ho
cd71a37bfa
Relax id requirement for basic query operations
2015-08-20 02:57:53 -07:00
Laurent Villeneuve
0381f6d7e7
Support embedded query in memory connector. Fix memory connector bug
...
Adds support for the ability to query embedsMany models from the parent.
Fix a memory connector bug that could occur when having an "or" or "and"
clause combined with another property. In that case, the and would revert
true for 'Paul McCartney'
```
{name:'John Lennon',and: [{role:'lead'}, {vip:true}]}}
```
2015-08-18 15:56:36 -04: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
Kenta Fried
90ee9a1af3
fixes issue 673: Include hasMany of relation does not return empty array
2015-07-31 14:47:22 -07:00
Raymond Feng
6513d9658f
Fix the test case with automigrate
2015-07-30 11:24:47 -07:00
Raymond Feng
c45bde7ccf
Merge pull request #647 from PradnyaBaviskar/issue-418-discover
...
Promisify all 'discover' methods
2015-07-29 07:43:39 -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
fee103d9d7
Remove test for unused utility function
2015-07-28 17:45:38 -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
Pradnya Baviskar
c63f3fb6cb
Promisify all 'discover' methods
2015-07-24 12:07:22 +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
Raymond Feng
ef97a9037a
Merge pull request #666 from fabien/fix/update-strict
...
Filter attributes when strict: true
2015-07-22 08:18:29 -07:00
Raymond Feng
c969e48d0c
Make sure done() is called within the callback
2015-07-21 08:07:09 -07: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
Bryan Clark
1066313f3f
use fromDb to deserialize data after save in Memory connector
...
Changes the after `save` callback in the memory connector to use the
`fromDb` method to deserialize the data passed back to upsert and
updateAttributes methods.
2015-07-14 09:08:09 -07:00
Fabien Franzen
6ce47f71b4
Correctly handle validatesUniquenessOf(idName)
2015-07-13 12:56:49 +02:00