Commit Graph

2327 Commits

Author SHA1 Message Date
Miroslav Bajtoš 9298919ec0 Merge pull request #418 from strongloop/feature/rename-query-to-access-hook
Rename hook "query" to "access"
2015-02-02 19:04:47 +01:00
Raymond Feng 4793546353 Merge pull request #400 from chrene/protected
Add support for protected properties.
2015-02-02 09:04:51 -08:00
Raymond Feng bba1ce0768 Merge pull request #405 from clarkorz/fix/id-for-compositeIds
fix id property for composite ids
2015-02-02 08:59:40 -08:00
Raymond Feng fd97b06bcc Merge pull request #416 from strongloop/feature/fix-lb-1058
Fix id type issue for update
2015-02-02 08:58:10 -08:00
Raymond Feng 4afb2385a9 Fix id type issue for update
https://github.com/strongloop/loopback/issues/1058
2015-02-02 08:44:36 -08:00
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š d3d0570348 Merge pull request #412 from strongloop/feature/before-delete-hook
Implement intent hook `before delete`
2015-02-02 09:23:52 +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
Raymond Feng c1697d5b5a Merge pull request #413 from strongloop/feature/fix-lb-1031
Make sure batch create calls back with correct data
2015-01-30 08:23:32 -08:00
Miroslav Bajtoš 31b9da7d44 Remove redundant `.toObject()` call from `upsert` 2015-01-30 11:31:30 +01: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š ce39f8ab01 Merge pull request #403 from strongloop/feature/intent-hooks
Intent-based hooks for persistent models
2015-01-29 08:59:28 +01: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
Miroslav Bajtoš f9b0ac482c Upgrade `should` to the latest 1.x version 2015-01-29 08:41:19 +01:00
Raymond Feng 577def97f8 Merge pull request #409 from billinghamj/master
Fixed nullCheck in validations for undefined attributes
2015-01-27 14:20:53 -08:00
James Billingham 28f3f5d9f8 Fixed nullCheck in validations to correct behavior when dealing with undefined attributes 2015-01-27 22:18:47 +00:00
Raymond Feng 70833b2a2b Merge pull request #407 from fabien/fix/apply-props
Supply target to applyProperties function
2015-01-26 11:19:26 -08:00
Fabien Franzen a08ef823be Supply target to applyProperties function 2015-01-26 19:09:29 +01:00
Clark Wang 2e9e2dd192 fix id property for composite ids
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2015-01-22 10:39:47 +08:00
Raymond Feng b2f41f4344 Merge pull request #402 from clarkorz/fix/ids-sort
fix id properties should sort by its index
2015-01-21 08:29:07 -08: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
Christian Enevoldsen 7372fafc97 Fixed typos and logic for protected properties 2015-01-20 21:32:31 +01:00
Christian Enevoldsen d39f539413 adds support for protected properties. 2015-01-20 20:58:52 +01:00
Raymond Feng 0af69794a3 Merge pull request #399 from clarkorz/embeds-belongsTo
support embeds data for belongsTo relation
2015-01-19 15:25:11 -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
Miroslav Bajtoš 0019501a8b Merge tag 'v2.14.1'
2.14.1

 * Fix detection of `util.inspect` version (Miroslav Bajtoš)

 * fix recursive calls if create belongsTo model in beforeCreate hook (Clark Wang)
2015-01-15 08:54:01 +01:00
Miroslav Bajtoš a5c8e2eb58 Merge branch 'release/2.14.1' into production 2015-01-15 08:53:59 +01:00
Miroslav Bajtoš 825b4d5ba3 v2.14.1 2015-01-15 08:53:57 +01:00
Miroslav Bajtoš 2c2c40362d Merge pull request #395 from strongloop/fix/detection-of-util.inspect-version
Fix detection of `util.inspect` version
2015-01-15 08:52:25 +01:00
Miroslav Bajtoš 2e98c51571 Fix detection of `util.inspect` version
Improve the detection to work in browser too. This fixes a regression
introduced in e4fc3878.
2015-01-15 08:45:52 +01: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 8c32dcef64 Merge tag 'v2.14.0'
2.14.0

 * Remove console.log (Raymond Feng)

 * Fix for #369 (Dallon Feldner)

 * Fix virtual id get function. (Berkeley Martinez)

 * Fix Model.prototype.inspect (Miroslav Bajtoš)

 * Include property value in the error message (Miroslav Bajtoš)

 * Update datasource.js (Rand McKinney)

 * Change Model to BaseModel for clarity (Fabien Franzen)

 * Don't coerce nested objects into Model instances (Fabien Franzen)
2015-01-14 12:44:26 -08:00
Raymond Feng abd0d244cc Merge branch 'release/2.14.0' into production 2015-01-14 12:44:24 -08:00
Raymond Feng 0ff7e3de91 v2.14.0 2015-01-14 12:44:22 -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
Raymond Feng a2b5d6410a Merge pull request #389 from strongloop/feature/include-value-in-validation-error-message
Include property value in the error message
2015-01-14 11:37:10 -08:00
Raymond Feng 2e08d48ad3 Merge pull request #390 from r3dm/fix/call-idNames
Fix virtual id get function.
2015-01-14 11:31:55 -08:00
Raymond Feng 1236171962 Merge pull request #391 from dallonf/patch-1
Fix for #369
2015-01-12 15:39:45 -08:00
Dallon Feldner e7fedc2926 Fix for #369
Remember, folks, `typeof null === 'object'`.
2015-01-12 17:38:21 -06:00
Berkeley Martinez 3fac41985b Fix virtual id get function. 2015-01-12 08:43:55 -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
Rand McKinney 2270ba4db4 Update datasource.js
Small fix to JSdoc
2015-01-08 15:30:17 -08:00
Fabien Franzen a19b778cbd Change Model to BaseModel for clarity 2015-01-08 15:44:28 +01:00