Commit Graph

552 Commits

Author SHA1 Message Date
Miroslav Bajtoš fcaf19a1d2 Rename hook "query" to "access"
The name "query" creates incorrect assumption that hook handlers
may return the result of a query to bypass database access.
That is far from true, since this hook is called also by methods
like `deleteAll` or `updateAll` that don't perform any SELECT query.
2015-02-02 10:41:18 +01:00
Miroslav Bajtoš 370966df99 Implement intent hook `before delete`
Methods `DAO.deleteAll` and `DAO.prototype.delete` now invoke
`before delete` hook too. The hook receives `ctx.where` describing
models to be deleted.
2015-02-02 09:13:31 +01:00
Miroslav Bajtoš 842e543bf7 Merge pull request #415 from strongloop/fix/regression-in-dao-save
Fix regression in `.save()` from 1fd6eff
2015-01-30 18:28:10 +01:00
Raymond Feng e41b2d9393 Merge pull request #414 from strongloop/feature/fix-hasone-remoting
Fix hasOne remoting
2015-01-30 08:23:46 -08:00
Miroslav Bajtoš 5cfbfe3a19 Fix regression in `.save()` from 1fd6eff1
The commit 1fd6eff1 (intent-based hooks) introduced a subtle regression
in `.save()` method where dynamic property setters were invoked twice.

This commit fixes the problem by moving pre-save data normalization
into `before save` callback.
2015-01-30 11:31:12 +01:00
Raymond Feng e46bd0cdb5 Fix hasOne remoting 2015-01-29 23:26:11 -08:00
Raymond Feng 7d42202d40 Make sure batch create calls back with correct data
See https://github.com/strongloop/loopback/issues/1031
2015-01-29 11:52:39 -08:00
Miroslav Bajtoš 1fd6eff10f Intent-based hooks for persistence
This patch introduces a new API for "intent-based" hooks. These hooks
are not tied to a particular method (e.g. "find" or "update"). Instead,
they are triggered from all methods that execute a particular "intent".

The consumer API is very simple, there is a new method
Model.observe(name, observer), where the observer is function
observer(context, callback).

Observers are inherited by child models and it is possible to register
multiple observers for the same hook.

List of hooks:

 - query
 - before save
 - after save
 - after delete
2015-01-29 08:43:52 +01:00
Miroslav Bajtoš b3d07ebbe8 ModelBaseClass: implement async observe/notify
Implement infrastructure for intent-based hooks.
2015-01-29 08:43:50 +01:00
James Billingham 28f3f5d9f8 Fixed nullCheck in validations to correct behavior when dealing with undefined attributes 2015-01-27 22:18:47 +00:00
Fabien Franzen a08ef823be Supply target to applyProperties function 2015-01-26 19:09:29 +01:00
Clark Wang c37de7f008 fix id properties should sort by its index
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2015-01-21 20:16:34 +08:00
Clark Wang 83c3a17f87 support embeds data for belongsTo relation
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2015-01-19 22:56:09 +08:00
Raymond Feng 4aeb831bd5 Merge pull request #358 from clarkorz/fix/beforeCreate-belongsTo
fix recursive calls if create belongsTo model in beforeCreate hook
2015-01-14 14:42:29 -08:00
Raymond Feng 8dfe877639 Remove console.log 2015-01-14 11:51:47 -08:00
Raymond Feng f1bdf50e2a Merge pull request #387 from fabien/fix/coerce
Don't coerce nested objects into Model instances
2015-01-14 11:43:38 -08:00
Miroslav Bajtoš e4fc38788f Fix Model.prototype.inspect
Return the raw object data when running on Node v0.11.14+
That way all `inspect` options are always preserved.

When running on older version:
 - Honour the depth argument passed to the custom `inspect` function.
 - Disable color output, becase there is now way how to detect whether
   colors were enabled or disabled by the top-level caller.
2015-01-12 17:12:18 +01:00
Miroslav Bajtoš 9b759c95ac Include property value in the error message
When building a list of errors for `ValidationError.message`, include
the values of invalid properties too.

In order to keep the message reasonably short, the values are truncated
at approx 32 characters.
2015-01-12 17:12:18 +01:00
Fabien Franzen a24b222a72 Don't coerce nested objects into Model instances
For queries, this is undesirable. It also affects
loopback-connector-mongodb's ability to perform nested queries (it
expects plain objects to work correctly, and to allow $elemMatch for
example).
2015-01-08 15:34:04 +01:00
Raymond Feng eac7526e80 Merge pull request #379 from cvette/memory-order-fix
fix sorting of undefined values in memory connector
2015-01-06 09:39:49 -08:00
Christian Vette 99acd364d2 added test for sorting undefined values 2015-01-05 21:56:17 +01:00
Raymond Feng f4c540ca02 Merge pull request #382 from clarkorz/feature/findOrCreate-flag
add a flag to callback of findOrCreate to indicate find or create
2015-01-05 11:18:06 -08:00
Raymond Feng 88b85a7fa2 Fix the floating number comparison 2015-01-05 10:53:26 -08:00
Clark Wang ce2b580ccd add a flag to callback of findOrCreate to indicate find or create
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2014-12-25 22:19:15 +08:00
Ritchie Martori efe4601fdb Merge pull request #370 from simoami/master
Fixed the haversine formula to calculate distance between 2 points
2014-12-18 15:08:42 -08:00
Simo Moujami e1a60f146e Added support for inline parameters like: new GeoPoint(-34, 150) 2014-12-18 10:47:06 -05:00
Clark Wang 6fa8969912 fix default include in default scope fails findById
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2014-12-11 15:14:35 +08:00
Simo Moujami b990afc910 Added test for toString() 2014-12-10 19:43:49 -05:00
Simo Moujami beaa97f6f4 Fixed constructor parameters and added bdd tests for constructor validation 2014-12-10 19:36:02 -05:00
Simo Moujami 87027b49f8 Fixed indentation 2014-12-10 17:47:32 -05:00
Simo Moujami 62c6ea0ddd Added mocha tests for GeoPoint 2014-12-10 17:41:49 -05:00
Raymond Feng 73d022398a Relax the id comparison 2014-12-08 16:18:42 -08:00
Raymond Feng d92905d53e Merge pull request #360 from clarkorz/fix/embedsOne-errors
fix embedsOne error when embed instance is undefined or null
2014-12-03 15:35:18 -08:00
Raymond Feng c51d1e9a08 Merge pull request #354 from clarkorz/fix/skip-validation
fix skipping async validator will always fail if condition is un-fulfilled
2014-12-03 15:22:57 -08:00
Clark Wang 9d2e6516c3 fix embedsOne error when embed instance is undefined or null
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2014-11-28 13:45:47 +08:00
Clark Wang 40f03f084b fix recursive calls if create belongsTo model in beforeCreate hook
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2014-11-24 19:20:38 +08:00
Clark Wang a9cc1c38df Allow hasOne relation to have a scope option
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2014-11-20 19:27:04 +08:00
Clark Wang 973dd33d63 fix skipping async validator will always fail if condition is un-fulfilled
If the validator configured with `{async:true}` option and `if/unless`
condition, validator should be skipped when the condition is un-fulfilled,
so the validator should be pass.

But currently, when skipping the validator, it calls `done(true)` which
accepts a `fail` flag as a param, this will fail the entire validation.

Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2014-11-19 21:50:08 +08:00
Raymond Feng ba29669e0d Merge branch 'fix/350-create-batch-hasmany-relation' of github.com:BuddyHOPP/loopback-datasource-juggler into BuddyHOPP-fix/350-create-batch-hasmany-relation 2014-11-13 12:50:21 -08:00
bitmage d11eacffc6 handle relationship create with [array] 2014-11-11 14:48:34 -07:00
Alex Voitau 5c2468c4ef #350: Creating a batch via hasMany relation is failing. Added handling of array argument. 2014-11-07 18:01:18 -08:00
Alex Voitau f1638e9e4c #350: Creating a batch via hasMany relation is failing. Added context 'with scope' to allow individual execution of tests. 2014-11-07 15:21:15 -08:00
Raymond Feng 14dcfb61be Add support for multiple includes that use relation syntax 2014-11-04 20:45:25 -08:00
Raymond Feng 5cd9e88ab2 Merge pull request #334 from pandaiolo/fix/has-one-pk
Fix for HasOne relation with non-standard id
2014-10-30 14:26:13 -07:00
Raymond Feng 11963ea12a Merge pull request #338 from fabien/fix/fields-vs-defaults
Don't apply defaults when fields are specified
2014-10-30 14:11:51 -07:00
Pandaiolo 833c24a2a3 Tests for non standard id - hasOne and polymorphic 2014-10-29 12:06:05 +01:00
Fabien Franzen e7a108efdb Don't apply defaults when fields are specified 2014-10-19 18:47:27 +02:00
Raymond Feng 455743167a Fix the automigrate issue
See https://github.com/strongloop/loopback-example-relations-basic/issues/6
2014-10-16 12:04:16 -07:00
Fabien Franzen 5662d9f0c2 Merge pull request #329 from fabien/feature/include-scope
Enable include scope for belongsTo
2014-10-15 18:08:42 +02:00
Fabien Franzen 55d116ec3f Enable include scope for belongsTo 2014-10-14 22:47:59 +02:00