Amir Jafarian
8d4c577032
Declare `definition`
...
Declare `definition` in `BelongsTo.prototype.destroy`
2016-07-22 15:44:53 -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
Rand McKinney
45e14af4a9
Update validations.js
...
Fix API doc per https://github.com/strongloop/loopback/issues/2472
2016-06-29 16:13:44 -07:00
gunjpan
8076be2db1
Remove DataSource.registerType()
...
Result of compat flag cleanup.
- Current implementation has a wrapper
DataSource.registerType() for
ModelBuilder.registerType(). This removes
the wrapper to encourage use of original
method
2016-06-28 14:45:42 -04:00
RobinBiondi
fbe58f7cf8
give options to validators #984
2016-06-24 14:44:43 -07:00
Gunjan Pandya
e0a68289c5
Merge pull request #947 from strongloop/update-errormsg
...
[SEMVER-MAJOR] Throw Error for property names with dots
2016-06-24 16:50:00 -04:00
Amir-61
73bb418719
Merge pull request #960 from strongloop/fix/connection-err-msg
...
Update datasource.js
2016-06-17 11:29:26 -04:00
gunjpan
8117b0403f
Throw Error for property names with dots
...
Result of Compat Flags Clenup.
Throws an error for property names with dots, instead
of a deprecation warning.
2016-06-09 17:50:59 -04: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
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
Ritchie Martori
293a22fd31
Update datasource.js
...
Return a real `Error` message for the default `ping()` method.
2016-06-02 14:02:06 -07: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-61
8f347fbacb
Merge pull request #954 from strongloop/callback_err_from_connector_UPSERT
...
Retun err for UPSERT if the connector returns err
2016-06-01 15:51: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
Amir Jafarian
82546fdf47
Retun err for UPSERT if the connector returns err
2016-05-31 22:17:23 -04:00
Alex Pitigoi
423db34bf3
fix error handling when applying undefined mixins
2016-05-31 12:24:04 -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š
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
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