Amir Jafarian
a96a8f379a
Remove unused variables in model.js
...
Backport loopback-datasource-juggler#1010
2016-07-23 16:56:16 -04:00
Amir Jafarian
69cc091ef4
Declare `definition`
...
* Declare `definition` in `BelongsTo.prototype.destroy`
Backport loopback-datasource-juggler#1009
2016-07-23 11:24:34 -04:00
Miroslav Bajtoš
ebcb5a0546
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 15:25:34 +02:00
Raymond Feng
6736d72b98
Merge pull request #986 from robinbiondi/postgresConcurency
...
Fix #984 Give request options(ex: transactions) to validators
2016-06-24 14:42:50 -07:00
RobinBiondi
35f14c38dc
give options to validators #984
2016-06-24 22:04:35 +02:00
Amir Jafarian
5f8e28a6c0
Update datasource.js
...
Return a real `Error` message for the default `ping()` method.
2016-06-17 11:36:13 -04:00
Amir Jafarian
26718c733a
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 15:54:22 -04:00
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
Raymond Feng
207edd5eec
Merge pull request #687 from sklyukin/master
...
primaryKey to hasOne relation
2015-09-08 09:20:42 -07:00
Rand McKinney
0e2d2c162e
Update validations.js
...
Fix small mistake in doc comment.
2015-09-04 16:31:54 -07:00
nennad
e679deb376
typo fix
2015-09-03 17:02:21 +01:00
nennad
f3b0cb062e
Fix foreignKey length issue
...
If the PK has a definition like
```
"mysql": {
"dataType": "CHAR",
"dataLength":36,
"nullable":"N"
}
```
dataLength is ignored when the PK is used as a foreignKey in other models
2015-09-03 17:00:38 +01: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
Raymond Feng
febfe2362a
Merge pull request #699 from satyadeepk/master
...
Fixed ReferencesMany .findById to check the given id in the modelInstance[fk]
2015-08-31 10:08:38 -07:00
Laurent Villeneuve
632898b022
Add support for matching array values à la mongo.
2015-08-27 23:32:53 -04:00
Simon Ho
57a9c40e16
Fix primary key checks
2015-08-27 13:59:43 -07:00
Wert_Lex
7b497eb58f
Moved inst initialization to place where it used
2015-08-25 15:46:50 +03:00
Wert_Lex
84dc39dfe2
All tests passed
2015-08-24 20:45:41 +03: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
Satyadeep
ad83c82ebc
Fixed ReferencesMany .findById to check the given id in the ids array of the model instance
2015-08-19 22:34:16 +05:30
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
Laurent Villeneuve
bdf703fb45
Use idEquals when comparing ids in relation definitions
2015-08-18 10:22:36 -04:00
Laurent Villeneuve
94ff275bbc
Handle possible undefined id
2015-08-18 09:40:52 -04:00
Laurent Villeneuve
9363354e0f
Fix id copmarison by using strings
2015-08-18 09:40:52 -04: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
62624203d1
Merge pull request #683 from thefinnomenon/master
...
Fixed typo & added the filter units
2015-08-06 08:50:21 -07:00
Chris Finn
42805fd326
Removed extra ")"
2015-08-05 15:39:33 -04:00
Raymond Feng
21c0067462
Report deferred exceptions via callback
2015-08-05 11:18:38 -07:00
Chris Finn
f35bd39e60
Fixed typo & added the filter units
...
Fixed typo in nearby sort function & added the ability to specify units when filtering for nearby points.
2015-08-05 14:18:28 -04:00
Kenta Fried
90ee9a1af3
fixes issue 673: Include hasMany of relation does not return empty array
2015-07-31 14:47:22 -07:00
Simon Ho
4cd428a726
Fix regexp error for the memory connector
...
- Check for undefined/null values when accessing `regexp` key
2015-07-30 08:46:50 -07:00
Raymond Feng
4d7bfc94cd
Fix error handling
2015-07-29 10:21: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
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
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
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