Miroslav Bajtoš
128665f1bd
Merge pull request #578 from strongloop/fix/validate-upsert
...
dao: support validateUpsert:false
2015-05-05 17:50:50 +02:00
Miroslav Bajtoš
9bc79d2366
dao: support validateUpsert:false
...
- validateUpsert:true reports validation errors back to the callback
- validateUpsert:false does not call `isValid()` at all
- any other value report validation errors via `console.warn`
2015-05-05 08:24:08 +02:00
Miroslav Bajtoš
f4be88357c
Add unit-test for "array" type
...
Add a unit-test to capture the fact that a property type can be
specified as `type: 'array'`.
2015-05-04 15:00:06 +02:00
Raymond Feng
33bbd8634c
Fix the test cases
2015-04-24 16:50:15 -07:00
Raymond Feng
3aa90751be
Merge branch 'merge-inclusion' of https://github.com/walkonsocial/loopback-datasource-juggler into walkonsocial-merge-inclusion
2015-04-24 16:12:38 -07:00
Raymond Feng
03a34fd086
Merge branch 'hasmanythrough-inconsitency' of https://github.com/walkonsocial/loopback-datasource-juggler into walkonsocial-hasmanythrough-inconsitency
2015-04-24 16:08:08 -07:00
ningsuhen
9a7f13ff0f
Add support for merging include filters
2015-04-25 01:59:39 +05:30
ningsuhen
7861c08e5a
add test case for hasmanythrough bi-drectional relations
2015-04-25 01:32:33 +05:30
Raymond Feng
c609b6d7ce
Allow leading slash for `path` in model settings
2015-04-24 08:23:13 -07:00
Miroslav Bajtoš
40eecd98c9
validations: treat `NaN` as a blank value
...
When a required number property is set to NaN, for example as a result
of coersion (`Number([1,2,3])`), the "presence" validation now correctly
reports an error.
2015-04-22 19:57:48 +02:00
Raymond Feng
c338c2326d
Merge pull request #561 from strongloop/feature/allow-name-mapper-for-discovery
...
Allow custom name mapping for discovered models
2015-04-22 08:43:09 -07:00
Raymond Feng
1e70678fa7
Allow custom name mapping for discovered models
2015-04-22 08:42:47 -07:00
Miroslav Bajtoš
b642d52fbe
Merge pull request #565 from strongloop/feature/validate-upsert
...
Validate model on updateOrCreate (upsert).
2015-04-17 17:20:55 +02:00
Raymond Feng
988a929577
Extend findById to accept an optional filter object
2015-04-16 09:06:53 -07:00
Miroslav Bajtoš
3df62444d6
Validate model on updateOrCreate (upsert).
...
Fix the implementation of updateOrCreate (a.k.a. upsert) to validate
the model before calling the connector.
In order to preserve backwards compatibility, validation errors are
only logged via console.warn by default.
The correct behaviour, where validation errors fail the updateOrCreate
operation, can be enabled via new model setting "validateUpsert".
2015-04-16 09:09:54 +02:00
Miroslav Bajtoš
99d4c6aa8d
Add new strict mode "validate"
...
When a model is configured with `strict: 'validate'`,
any dynamic properties not included in the schema trigger
a validation error.
2015-04-14 08:16:10 +02:00
Partap Davis
29eb3434c7
Promisify model relation methods
...
When a callback is omitted from a method on a model relation that
supports promises, return that promise. This includes all the standard
DAO methods, as well as any user-defined methods that return promises.
e.g.:
mylist.todos.create({name: 'Item 1'}) // returns Promise
This API will use native ES6 promises if available. If not available,
or to force the use of another Promise library, you must assign the
global.Promise object.
e.g.:
global.Promise = require('bluebird')
Relations affected:
- BelongsTo
- HasOne
- HasMany
- HasManyThrough
- HasAndBelongsToMany
- ReferencesMany
- EmbedsOne
Exceptions:
The EmbedsMany relation has not been promisified, because most of the
methods return synchronous values.
The base relation getter method [e.g.: mylist.todos()] has not been
promisified, due to its default caching behavior.
New Methods:
- getAsync(condition, cb)
A new method "getAsync()" has been added to all relations except
EmbedsMany, which always fetches from the datasource rather than from
the cache. It takes an optional "where" condition (except for HasOne
and BelongsTo) and an optional callback. If the callback is omitted,
a Promise is returned.
2015-04-07 11:41:07 +02:00
Raymond Feng
16cc870f57
Merge pull request #544 from strongloop/feature/nesting-doc-query
...
Allow nesting properties to be queried for memory connector
2015-04-02 08:47:10 -07:00
Miroslav Bajtoš
cd7bc46efb
Deprecate property names containing a dot
2015-04-02 09:49:04 +02:00
Miroslav Bajtoš
a00b91db79
Fix test for "after save" called on save/CREATE
...
Fix the test to correctly trigger the code path where the connector
decides whether a new record is created or an existing one is updated.
2015-04-01 18:25:45 +02:00
Fabien Franzen
17c8576097
Save parent model of embedded relations
2015-04-01 16:59:21 +02:00
Raymond Feng
8d1e782199
Merge pull request #546 from fabien/feature/scope-update-all
...
Implement scope.updateAll
2015-03-30 14:35:47 -07:00
Raymond Feng
44e5ad1fef
Merge pull request #549 from fabien/feature/hookstate-from-options
...
Allow passing in hookState from options
2015-03-30 14:35:34 -07:00
Miroslav Bajtoš
d18fa04ee9
Merge pull request #548 from strongloop/fix/persistUndefinedAsNull-tests-and-SQL
...
Fix persistUndefinedAsNull tests w/ SQL connectors
2015-03-30 19:28:40 +02:00
Fabien Franzen
1ab3d74ab5
Pass options in operation hooks context.
2015-03-30 18:03:42 +02:00
Raymond Feng
7c7f04955d
Merge pull request #543 from strongloop/feature/fix-test-case
...
Fix the test cases so that they be run with the mssql connector
2015-03-30 08:25:10 -07:00
Miroslav Bajtoš
517ea875ec
Merge pull request #500 from 0angelic0/master
...
Remove and clear Operation Hook observers
2015-03-30 11:26:57 +02:00
Miroslav Bajtoš
b66d9fbc54
Fix persistUndefinedAsNull tests w/ SQL connectors
...
Check whether the connector enables strict mode and don't assert on
dynamic properties in such case.
2015-03-30 10:45:55 +02:00
Fabien Franzen
7e55ef18f8
Implement scope.updateAll
2015-03-28 21:25:24 +01:00
Raymond Feng
137d096cfb
Allow nesting properties to be queried for memory connector
...
See https://github.com/strongloop/loopback/issues/517
2015-03-27 16:05:12 -07:00
Raymond Feng
d192b2ea05
Fix the test cases so that they be run with the mssql connector
...
For SQL server, if the PK is an identity, the id cannot be set for
insert.
2015-03-27 14:18:17 -07:00
Miroslav Bajtoš
9fd4c00225
Add model setting "persistUndefinedAsNull"
...
When the setting "persistUndefinedAsNull" is true,
the model will use `null` instead of `undefined` in
all property values.
- Known optional model properties are set to `null` when no value
was provided.
- When setting model properties, `undefined` is always converted
to `null`. This applies to both known (model-defined) properties
and additional (custom, dynamic) properties.
- The instance method `toObject()` converts `undefined` to `null` too.
Because `toJSON()` calls `toObject()` under the hood, the change
applies to `toJSON()` too.
2015-03-27 18:25:26 +01:00
Simon Ho
311ab293d2
Clean up delete and update tests
2015-03-24 21:30:40 -07:00
Simon Ho
f7540edf8a
Clean up wording in update/delete tests
2015-03-24 12:15:35 -07:00
Simon Ho
8467243e63
Fix wording in update test
2015-03-24 11:47:13 -07:00
Fabien Franzen
aa5943f6b0
Properly support embedsMany destroyAll
2015-03-24 15:39:55 +01:00
Simon Ho
3f97586455
Clean up update/delete manipulation tests
2015-03-23 14:41:38 -07:00
Miroslav Bajtoš
35b549543d
test: fix test failure in MySQL connector
...
Fix a test using a string Person.id value to use a numeric value
instead, in order to support connectors that use numeric ids by default.
2015-03-23 09:18:46 +01:00
Miroslav Bajtoš
1fbaf4e382
Improve test failure messages
...
Replace
foo.count.should.equal(X)
Uncaught TypeError: Cannot read property 'should' of undefined
with
foo.should.have.property('count', X)`
Uncaught AssertionError: expected 0 to have property count
2015-03-23 08:44:53 +01:00
Miroslav Bajtoš
f7dc6fab90
Fix regression in prototype.save
...
ffcaa4e7
added a "data" argument to the callback function, which
shadowed the original data with the data returned by a connector.
Not all connectors are returning a data object though, in which case
the model instance ("this" object) is updated with wrong values.
This commit fixes the problem by renaming the second callback argument
to "unusedData".
2015-03-23 08:34:21 +01:00
Fabien Franzen
8199767a8a
Implement scope.findOne
2015-03-21 13:44:06 +01:00
Raymond Feng
5d0b745f31
Merge pull request #520 from fabien/feature/scope-find-by-id
...
Implement scope.findById
2015-03-20 12:00:56 -07:00
Raymond Feng
2f0561a7a8
Merge pull request #514 from fabien/feature/relation-methods
...
Enable defineMethod for singular relations
2015-03-20 11:57:45 -07:00
Raymond Feng
4ac227b052
Merge pull request #522 from strongloop/feature/enhance-id-comparison-for-updateAttributes
...
Enhance id comparision for updateAttributes
2015-03-20 11:06:57 -07:00
Raymond Feng
6a40a8a5e5
Enhance id comparision for updateAttributes
...
string/number and MongoDB ObjectID equality are now allowed.
2015-03-20 11:06:24 -07:00
Miroslav Bajtoš
84d538c1ca
Merge pull request #515 from strongloop/feature/isNewInstance
...
Add ctx.isNewInstance for "save" hooks
2015-03-20 18:33:55 +01:00
Fabien Franzen
54781f376e
Enable custom methods on singular relations
2015-03-20 18:15:58 +01:00
Fabien Franzen
34acc6c50a
Implement scope.findById
2015-03-20 16:37:46 +01:00
Simon Ho
04f35b31b4
Memory connector returns updated records count
...
The memory connector now includes the number of updated items in its callback
when updating records.
2015-03-19 15:40:14 -07:00
Raymond Feng
a8d8556dcc
Merge pull request #499 from clarkorz/fix/merge-mixins
...
fix #429 Multiple Models can't mixin same class
2015-03-19 13:21:22 -07:00
Miroslav Bajtoš
ffcaa4e76e
Add ctx.isNewInstance for "save" hooks
...
"before save" hooks provide "ctx.isNewInstance" whenever "ctx.instance"
is set. Possible values:
- true for all CREATE operations
- false for all UPDATE operations
- undefined for "prototype.save"
"after save" hooks provide "ctx.isNewInstance" whenever "ctx.instance"
is set. Possible values:
- true after all CREATE operations
- false after all UPDATE operations
- undefined after "updateOrCreate" and "save"
Note: both "updateOrCreate" and "prototype.updateAttributes"
don't provide `ctx.instance` to "before save" hooks, therefore
`ctx.isNewInstance` it not provided either.
2015-03-19 18:05:24 +01:00
Miroslav Bajtoš
d731252941
deleteAll returns number of deleted records
...
The number is returned as `data.ctx` to `cb(null, data)`.
2015-03-19 17:54:22 +01:00
Miroslav Bajtoš
ae3dc3cec2
Merge pull request #510 from strongloop/fix/duplicate-create
...
Reject CREATE with a duplicate id
2015-03-19 17:37:01 +01:00
Raymond Feng
01fb5db550
Merge pull request #509 from dbarbeau/master
...
Enable "between" filter for memory db connector
2015-03-16 10:41:38 -07:00
Miroslav Bajtoš
6f11c2d717
DAO: Fix updateOrCreate to set persisted:true
...
Before this commit, the following code would not work:
Change.updateOrCreate({...}, function(err, ch) {
// somewhere later, modify "ch" and save the changes
ch.save(cb);
});
2015-03-16 18:26:42 +01:00
Miroslav Bajtoš
902772f1af
Reject CREATE with a duplicate id
...
Modify the memory connector to reject requests to create a record
with a duplicate id.
Add a unit-test to verify this behaviour across all connectors.
2015-03-16 18:26:42 +01:00
Daniel B. Vasquez
3de94cb9bd
add tests for between in memory connector
2015-03-16 18:26:33 +01:00
Raymond Feng
f91399a307
Fix the test case so that at least one property is to be changed
2015-03-16 09:26:03 -07:00
Raymond Feng
04348a1168
Make sure id properties cannot be changed
2015-03-16 09:25:38 -07:00
0angelic0
befe30f14a
Add abilities to remove and clear observers - Operation Hooks.
2015-03-11 18:08:35 +07:00
Fabien Franzen
8605da3ac6
Improve instance-level operation hooks
...
"before delete" and "after delete" hooks receive `ctx.instance`
when a single model is being deleted.
"before save" hook receives `ctx.currentInstance` when triggered
by `prototype.updateAttributes()`.
Note that "after save" hook triggered by `prototype.updateAttributes()`
already provides `ctx.instance`.
2015-03-11 09:35:46 +01:00
Clark Wang
90e169c1a6
fix #429 Multiple Models can't mixin same class
...
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2015-03-11 16:08:50 +08:00
Raymond Feng
2a24273b4f
Fix the test case
2015-03-10 21:26:36 -07:00
Raymond Feng
159be756ac
Merge pull request #494 from strongloop/feature/allow-submodel-to-hide-base-properties
...
Allow submodel to hide base properties
2015-03-09 13:16:09 -07:00
Fabien Franzen
18b58558cc
Reformat notifyObserversOf context argument
2015-03-05 15:53:34 +01:00
Fabien Franzen
f42859f2e5
Implement operation hooks' context
2015-03-05 11:55:04 +01:00
Raymond Feng
33d3239b44
Allow submodel to hide base properties
2015-03-03 10:27:22 -08:00
Raymond Feng
8042eeb3b1
Make sure inclusion filter is applied to the target model
...
See https://github.com/strongloop/loopback/issues/1076
2015-02-28 10:53:18 -08:00
Partap Davis
1e6c453191
Add Promises to DAO
...
When a callback is omitted from a DAO method, return a Promise that
resolves to the value normally passed to the callback of that method.
If a callback is provided, behave normally.
This API will use native ES6 promises if available. If not available,
or to force the use of another Promise library, you must assign the
global.Promise object.
e.g.:
global.Promise = require('bluebird')
Class methods affected:
- create
- updateOrCreate / upsert
- findOrCreate
- exists
- find
- findOne
- findById
- findByIds
- remove / deleteAll / destroyAll
- removeById / deleteById / destroyById
- count
- update / updateAll
Prototype methods affected:
- save
- delete / remove / destroy
- updateAttribute
- updateAttributes
- reload
Exceptions / edge cases:
- create() used to return the data object that was passed in, even if
no callback was provided. Now, if a callback is provided, it will
return the data object, otherwise it will return a Promise.
- If create() is provided an array of data objects for creation, it
will continue to always return the array. This batch creation mode
does not support promises.
- findOrCreate() has a callback of the form: cb(err, instance, created),
with the extra parameter indicating whether the instance was created
or not. When called with its promise variant, the resolver will
receive a single array parameter: [instance, created]
2015-02-26 13:45:37 -07:00
rudzon
3953cc3e2f
test for updateAll
2015-02-24 13:56:57 +02:00
Raymond Feng
9fd3865f32
Make sure models are migrated to avoid conflicts
2015-02-20 21:44:49 -08:00
Raymond Feng
a42e3b3d30
Add err checks
2015-02-20 21:14:48 -08:00
Raymond Feng
527d5f7a81
Fix findByIds test cases
2015-02-20 21:14:41 -08:00
Raymond Feng
195752eaad
Fix the idType so that it works with both MongoDB and RDBs
2015-02-20 16:39:48 -08:00
Raymond Feng
841f2d8f14
Tidy up tests so that they will work with RDBs
2015-02-20 16:10:25 -08:00
Raymond Feng
4c99fbabba
Merge pull request #459 from strongloop/feature/fix-test-date
...
Fix createdAt type so that it won't overflow SQL server int
2015-02-20 12:08:07 -08:00
Miroslav Bajtoš
ba0f3c1616
Add a new property option `defaultFn`
...
The property allows developers to specify that the default value
should be retrieved via a named function.
Only two built-in functions are supported at the moment:
"guid", "uuid" - generate a new GUID/UUID
"now" - use the current date and time
Support for custom (user-provided) functions is not implemented yet.
2015-02-20 20:08:25 +01:00
Raymond Feng
a713f25d61
Fix the null/undefined check
2015-02-20 09:55:09 -08:00
Raymond Feng
02503e7635
Fix createdAt type so that it won't overflow SQL server int
2015-02-20 09:33:54 -08:00
Miroslav Bajtoš
c939efe1e7
Merge pull request #445 from PradnyaBaviskar/issue292
...
Add $now as shortcut default value for date property
2015-02-17 19:46:05 +01:00
Miroslav Bajtoš
76ebdcb91b
ModelBaseClass: promise mode for notifyObserversOf
...
Support both promise and callback styles in
ModelBaseClass.notifyObserversOf.
When there is no callback supplied, the method returns a promise that
is resolved (or rejected) with the result.
2015-02-17 18:19:21 +01:00
Miroslav Bajtoš
a2836fbb56
ModelBaseClass: support promise-based observers
...
Allow the observer functions passed to `ModelBaseClass.observe`
to return a promise instead of calling the callback.
2015-02-17 17:31:42 +01:00
Bryan Clark
98fcf6b52c
use lodash to update the findBelongsTo which now returns an array of matches
2015-02-16 15:36:51 -08:00
Pradnya Baviskar
aba7d0dc10
Add $now as shortcut default value for date property
2015-02-16 11:32:24 +05:30
Miroslav Bajtoš
46ff76dda0
Fix `deleteById(id)` and other test failures
2015-02-13 09:34:40 -08:00
Raymond Feng
bcbb9c580d
Merge branch 'featrue/support-connector-findOrCreate' of https://github.com/clarkorz/loopback-datasource-juggler into clarkorz-featrue/support-connector-findOrCreate
2015-02-11 20:49:51 -08:00
Raymond Feng
a8f3d21b65
Merge pull request #436 from strongloop/feature/fix-issue-293
...
Make sure base properties/settings are merged into the submodel
2015-02-11 16:13:00 -08:00
Raymond Feng
9bac813f59
Merge pull request #435 from strongloop/feature/add-options-to-crud-methods
...
Add an optional `options` argument to all CRUD methods
2015-02-11 10:31:18 -08:00
Raymond Feng
760ac97902
Add an optional `options` argument to all CRUD methods
2015-02-10 23:57:05 -08:00
Denis Bardadym
32e534732c
Remove workaround for perfomance degradation
2015-02-10 13:28:47 +03:00
Raymond Feng
919d32c4dc
Change equal to eql to support mongodb ObjectID
2015-02-08 11:14:51 -08:00
Raymond Feng
ecf84bf802
Enhance the coercion for boolean/date types
...
See https://github.com/strongloop/loopback-connector-mongodb/issues/90
2015-02-08 10:54:42 -08:00
Raymond Feng
cd2bd34619
Make sure base properties/settings are merged into the submodel
...
See https://github.com/strongloop/loopback-datasource-juggler/issues/293
2015-02-07 11:15:28 -08:00
Clark Wang
0bef56efc0
support optimized findOrCreate
...
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
remove undefined for creating data in findOrCreate
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
getLastGeneratedUid instead of force an id
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2015-02-07 10:23:04 +08:00
Raymond Feng
e9c966227d
Merge pull request #420 from aol-nnov/fkCustomDbType
...
Create model foreign key matching type of opposite part of relation (even if it has a custom field type)
2015-02-05 10:28:04 -08:00
Raymond Feng
c9e78f6bd2
Fix the perf around should.not.equal for complex objects
2015-02-05 08:22:17 -08:00
Miroslav Bajtoš
2e2e01cc5c
Merge pull request #430 from PradnyaBaviskar/issue709
...
Return 400 when client provides an incorrect value
2015-02-05 12:42:54 +01:00
Pradnya Baviskar
be37fb4388
Return 400 when client provides an incorrect value
2015-02-05 16:58:42 +05:30
Andrey Loukhnov
3ce6a2618f
testcase for #420
2015-02-05 10:12:34 +03:00
Miroslav Bajtoš
04083678c0
Relax "id" checks in test/manipulation.test.js
...
Use `eql` instead of `equal` to support non-scalar id values
used by MongoDB connector.
2015-02-04 19:20:56 +01:00
Miroslav Bajtoš
4889443ed0
Merge pull request #422 from strongloop/feature/fix-mongodb-issue-87
...
Remove undefined properties for create
2015-02-04 19:11:02 +01:00
Miroslav Bajtoš
7a7fcb2e34
test: undefined property values are preserved
2015-02-04 09:08:28 +01:00
Miroslav Bajtoš
3593127ef3
Update to `should` to the latest version 4.6.3
2015-02-03 11:44:15 +01:00
Raymond Feng
1f0f4b0f02
Relax the id equality test for mongodb object ids
2015-02-02 10:51:41 -08:00
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š
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
2e9e2dd192
fix id property for composite ids
...
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2015-01-22 10:39:47 +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
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
Raymond Feng
07993d2e1f
Merge pull request #324 from fabien/feature/include-scope
...
Include scope
2014-10-13 08:33:26 -07:00
Miroslav Bajtoš
14d178bf69
Don't inherit settings.base when extending a model
...
Fix the bug in `ModelClass.extend` where the `base` option used
in the new class was inherited from ModelClass. As a result
the extended model was incorrectly based on ModelClass's parent.
Modify `modelBuilder.define` to normalize the property name storing
the name of the base model to `settings.base`.
2014-10-10 18:35:18 +02:00
Fabien Franzen
8d6e3adaab
Allow include syntax without scope param
2014-10-10 17:17:36 +02:00
Fabien Franzen
0c28ccedac
Refactored inclusion
...
The syntax is now consistent, regardless of using [] or {} for the
include param.
2014-10-10 14:24:25 +02:00
Fabien Franzen
ca0b3399c8
Implement include scopes
2014-10-10 12:28:39 +02:00
Fabien Franzen
2838158139
Fix failing test
2014-10-09 18:18:04 +02:00
Fabien Franzen
0e49dc94ec
Allow `attributes` as an alias for `properties` (for LDL)
2014-10-09 18:14:04 +02:00
Fabien Franzen
ec05d0b5a8
Cleanup, consistency: allow properties to be a function
...
Also, pass along the current instance, for any instance method as a
context (save, updateAttributes).
2014-10-09 18:14:04 +02:00
Fabien Franzen
beeb7c46c9
applyProperties => properties (object/false)
2014-10-09 18:14:04 +02:00
Fabien Franzen
702796a486
Test default scope with relations
2014-10-09 18:14:04 +02:00
Fabien Franzen
49e2b8b8dc
Allow default scope to be a function
2014-10-09 18:14:04 +02:00
Fabien Franzen
b136a8fce7
Full test CRUD suite for default scope
2014-10-09 18:14:04 +02:00
Fabien Franzen
ad55681d69
Properly reset Memory connector cache on automigrate
2014-10-09 18:13:58 +02:00
Fabien Franzen
8352ed3afc
Implemented collection setting for Memory connector
2014-10-09 18:13:57 +02:00
Fabien Franzen
610866bd7c
Extract mergeQuery and setScopeValuesFromWhere
...
Related to #274 - in preparation of default scope
2014-10-09 18:13:40 +02:00
Raymond Feng
43e0f0f6fa
Merge pull request #301 from strongloop/feature/allow-base-for-discovery
...
Tidy up model building from data sources
2014-09-23 16:38:17 -07:00
Raymond Feng
b5cebd75a7
Merge pull request #303 from khashayar/feature/test-improvement
...
Test improvement, shows _targetClass camelCase bug
2014-09-23 16:37:59 -07:00
Khashayar Hajian
28a661a81a
Test improvement, shows _targetClass camelCase bug
...
There is an issue where setting _targetClass on hasAndBelongsToMany
relations with a camel-case model name, fails.
Signed-off-by: Khashayar Hajian <me@khashayar.me>
2014-09-17 17:28:40 +02:00
Raymond Feng
fe74c8019c
Tidy up model building from data sources
...
See https://github.com/strongloop/loopback/issues/560
2014-09-12 14:25:35 -07:00
Raymond Feng
3655107334
Merge pull request #295 from fabien/fix/embeds-many
...
Various improvements to embedded relations
2014-09-12 10:31:49 -07:00
Raymond Feng
af40505703
Merge pull request #290 from fabien/feature/enforce-id
...
Enforce id (prevent user-set value), fix isNewRecord
2014-09-12 10:31:10 -07:00
Raymond Feng
6903253471
Merge pull request #288 from fabien/fix/relation-tests
...
Test sync (cached) relation getters
2014-09-12 10:29:42 -07:00
Fabien Franzen
d1a08ef6b3
Add test case for Numeric ids (with optional forceId)
2014-09-07 20:54:11 +02:00
Fabien Franzen
e441924fa3
Allow embedsOne to use auto-generated id (from connector)
...
If the connector has a `generateId` method - like Transient - it can be
used to set the id (when the property has been set to `generated:
true`).
2014-09-07 13:24:05 +02:00
Fabien Franzen
21e1083e88
Implemented persistent: true option for embedsOne
2014-09-07 13:10:23 +02:00
Fabien Franzen
95764232b9
Introduce embedsMany persistent: true option
...
When set, instead of only embedding the model (on creation) it will be
persisted first, and subsequently embedded.
2014-09-07 12:59:47 +02:00
Fabien Franzen
ef816d490a
More tests for embedsMany with persistent model
2014-09-07 12:44:45 +02:00
Fabien Franzen
4c6f35d23d
Only check id as part of embedsMany relation
2014-09-07 12:17:42 +02:00
Fabien Franzen
a66e612c87
Fix multi-property validation definitions
...
Fixes #291 , as introduced by me ...
https://github.com/strongloop/loopback-datasource-juggler/commit/6fae8c7
27759256157bf7ccd82e04ee372a59088
2014-09-05 18:00:11 +02:00
Fabien Franzen
d8cafd0c84
Tiny fixes
2014-09-05 17:28:50 +02:00
Fabien Franzen
fafe51833b
More fixes/tests
2014-09-05 17:09:23 +02:00
Fabien Franzen
aebf5e9e6b
Enforce id (prevent user-set value), fix isNewRecord
2014-09-05 16:35:01 +02:00
Fabien Franzen
a815ad0c1a
Test .value() method - as used by scope getter
2014-09-04 21:57:18 +02:00
Fabien Franzen
433b89a78a
embedsMany - implement sync scope getter
2014-09-04 21:51:59 +02:00
Fabien Franzen
92a76d3edb
hasAndBelongsToMany - test sync scope getter
2014-09-04 21:30:41 +02:00
Fabien Franzen
80b71438a7
polymorphic hasMany - test sync scope getter
2014-09-04 21:29:21 +02:00
Fabien Franzen
e502bd4459
hasOne - test sync scope getter
2014-09-04 21:27:40 +02:00
Fabien Franzen
98a75103a1
hasMany through - sync scope getter
2014-09-04 21:25:26 +02:00