Commit Graph

446 Commits

Author SHA1 Message Date
Raymond Feng da4482d1cf Merge pull request #213 from fabien/feature/scope-rel-methods
Implement scope.defineMethod/relation.defineMethod
2014-08-15 09:24:24 -07:00
Fabien Franzen a67759dcbf Refactored embedsMany (relationName vs. propertyName) 2014-08-14 20:12:16 +02:00
Fabien Franzen a243d05880 Enable DL definition of embedsMany + referencesMany 2014-08-14 20:12:16 +02:00
Fabien Franzen 807a6aaf3f Refactor modelTo logic into lookupModelTo 2014-08-14 19:43:30 +02:00
Fabien Franzen d7555bfb64 Allow runtime override of scope/relation order query param 2014-08-13 16:24:11 +02:00
Fabien Franzen 710ad35b39 Implement scope.defineMethod/relation.defineMethod 2014-08-13 11:28:23 +02:00
Jaka Hudoklin 0d44cdc573 add count to relations
Signed-off-by: Jaka Hudoklin <jakahudoklin@gmail.com>
2014-08-12 14:44:33 +02:00
Raymond Feng 950be998bc Fix the test case so that it works with other DBs 2014-08-08 09:39:36 -07:00
Raymond Feng caff62d8b3 Merge branch 'fabien-feature/plugins' 2014-08-08 09:29:17 -07:00
Raymond Feng 7fe7bf9b9a Add scope definitions to the model class
See https://github.com/strongloop/loopback/issues/454
2014-08-08 09:01:24 -07:00
Raymond Feng f671c9c726 Clean up the mixin processing 2014-08-08 01:20:57 -07:00
Fabien Franzen 35776311fd Unified plugins into mixins
Mixin types: module function, module object, LDL json object.
2014-08-06 13:26:47 +02:00
Fabien Franzen f1f692a8a5 Minor touch-ups 2014-08-05 16:26:34 +02:00
Fabien Franzen 1a4e8863ef Basic plugin architecture
Similar to http://mongoosejs.com/docs/plugins.html

Next, loopback-boot should be updated to support loading plugins from
dirs.
2014-08-05 16:16:10 +02:00
Raymond Feng d07b716ae8 Merge pull request #200 from strongloop/feature/emit-events-during-attach
Emit dataAccessConfigured events during attach
2014-08-04 15:27:11 -07:00
Fabien Franzen 93aea7eb66 Changed options.path to option.http.path 2014-08-04 19:45:47 +02:00
Fabien Franzen 81a822524d Removed normalization (see strong-remoting) 2014-08-04 12:17:06 +02:00
Raymond Feng b9d9ab0fb3 Emit dataAccessConfigured events during attach
See discussions at https://github.com/strongloop/loopback/issues/410
2014-08-01 08:22:33 -07:00
Fabien Franzen 71bf0f8240 Customize/Normalize class-level remoting http path 2014-08-01 09:38:25 +02:00
Raymond Feng 6239d8fde5 Merge branch 'patch-4' of github.com:lchenay/loopback-datasource-juggler into lchenay-patch-4 2014-07-30 21:34:41 -07:00
Fabien Franzen 090c738bb5 Correctly handle remoting of scope methods 2014-07-30 17:30:21 +02:00
Fabien Franzen af0ca5b108 Handle remoting of custom scope methods 2014-07-30 16:46:05 +02:00
Fabien Franzen e38c92af87 ReferencesMany fixes after LB integration tests 2014-07-30 15:01:55 +02:00
Raymond Feng 7a9b64f1bf Fix the test failure for mongodb 2014-07-29 22:19:52 -07:00
Fabien Franzen e888b8cff9 Allow custom scopeMethods option (obj/fn) for relation scopes 2014-07-29 22:59:44 +02:00
Fabien Franzen 06f2b32c21 Renamed EmbedsMany 'reference' option to 'belongsTo' 2014-07-29 21:56:59 +02:00
Fabien Franzen 1782b439f1 Implemented referencesMany 2014-07-29 21:46:12 +02:00
Fabien Franzen 60fd39d311 Added option: reference to enable embedsMany add/remove 2014-07-29 17:43:30 +02:00
Fabien Franzen b18384459a Implemented findByIds 2014-07-29 15:01:47 +02:00
Fabien Franzen 296bb0d73e Minor touchups 2014-07-29 14:05:18 +02:00
Fabien Franzen 13cee9502c Tests for polymorphic embedsMany 2014-07-29 13:57:49 +02:00
Fabien Franzen da303b72a5 Implemented more complex scenaro: embedsMany + relations
The test case will denormalize data into the embedded object,
and re-use the actual related object id as its own id.
2014-07-29 12:02:52 +02:00
Laurent Chenay b336166acc Add test to protect the use of include in related method 2014-07-29 11:05:57 +02:00
Fabien Franzen 6ed7a0a5f2 Convenience embedsMany accessors: at(idx), get(id), set(id, data) 2014-07-29 10:51:33 +02:00
Raymond Feng cb43114ab7 Fix test cases 2014-07-28 16:15:37 -07:00
Raymond Feng 1b44a6d779 Merge branch 'feature/embed-hasmany' of github.com:fabien/loopback-datasource-juggler into fabien-feature/embed-hasmany 2014-07-28 14:51:16 -07:00
Raymond Feng 75403ef929 Merge branch 'feature/polymorphic-rel' of github.com:fabien/loopback-datasource-juggler into fabien-feature/polymorphic-rel
Fix test cases
2014-07-28 14:22:45 -07:00
Fabien Franzen 7ddfbb6409 polymorphics can now be declared using object 2014-07-28 10:44:26 +02:00
Fabien Franzen 43e11af942 Test build of embedsMany 2014-07-27 17:16:25 +02:00
Fabien Franzen 1487a592c1 Added validation for embedded items (optional) 2014-07-27 16:54:01 +02:00
Fabien Franzen 59a957b538 Implemented embedsMany relation 2014-07-27 16:30:45 +02:00
Fabien Franzen 5a5aa3f14d Minor tweaks; pass-through properties/scope for hasAndBelongsToMany 2014-07-26 21:32:24 +02:00
Fabien Franzen 5e30ec8637 Implemented polymorphic hasMany through inverse
Added option invert: true to enable inverse polymorphic hasMany
relations.

Fixed missing fk1 in query of HasManyThrough.prototype.exists.
2014-07-26 21:11:25 +02:00
Fabien Franzen d1896553fd More hasAndBelongsToMany tests 2014-07-26 17:20:25 +02:00
Fabien Franzen 00dfe563eb Implemented polymorphic hasOne
Signed-off-by: Fabien Franzen <info@atelierfabien.be>
2014-07-26 15:20:46 +02:00
Fabien Franzen 295e6fc1f1 Implemented polymorphic hasAndBelongsToMany 2014-07-26 14:54:54 +02:00
Fabien Franzen 9b97e1ae77 Implemented polymorphic hasMany 2014-07-26 12:47:55 +02:00
Miroslav Bajtoš cd4dba79dc relation: add `scope._target` for `hasOne`
Add `_target` property to the scope method created by `hasOne`
relationship. The `_target` property is used by loopback-sdk-angular.
2014-07-24 20:22:11 +02:00
Fabien Franzen 973c96268f Fix scoped destroyAll: only use 'where', not full 'filter' args 2014-07-24 15:55:00 +02:00
Fabien Franzen 687eb9888b Added test for belongsTo scope/properties
Note: its seems that keyFrom and keyTo were mistakingly reversed in
BelongsTo.prototype.create, please double check. The added test cases
now pass with pk/fk switched.
2014-07-23 11:10:44 +02:00
Raymond Feng 716b27b0f0 Merge pull request #181 from offlinehacker/master
Add support for disabling relationship includes
2014-07-21 13:46:43 -07:00
Jaka Hudoklin 11679beb14 add support for disabling relationship includes
Signed-off-by: Jaka Hudoklin <jakahudoklin@gmail.com>
2014-07-21 22:39:29 +02:00
Raymond Feng 8f46626c0b Expose base model class as `base` property 2014-07-21 10:21:30 -07:00
Raymond Feng fc710ca55a Merge branch 'master' into 2.0 2014-07-15 17:09:20 -07:00
Raymond Feng 82c6c8e851 Make sure related properties are defined for RDBMS 2014-07-15 16:10:37 -07:00
Raymond Feng dc6ada6348 Merge pull request #165 from strongloop/feature/allow-hook-skip-next
Pass callback to hooks so that next can be skipped
2014-07-15 12:53:52 -07:00
Raymond Feng efeb59178f Merge pull request #174 from fabien/fix/validations
Fix/validations
2014-07-15 12:53:33 -07:00
Raymond Feng 9325ce316b Allow before hooks to pass arguments to next() 2014-07-15 12:51:33 -07:00
Raymond Feng f3dbc6ca5f Remoting methods for hasMany through 2014-07-15 08:50:34 -07:00
Fabien Franzen 03617b58df Sign-off
Signed-off-by: Fabien Franzen <info@atelierfabien.be>
2014-07-12 00:24:07 +02:00
Fabien Franzen 48c4f25b09 Renamed mapping to properties 2014-07-12 00:02:16 +02:00
Fabien Franzen 50656b8206 Handle custom error codes
Fixes #151
2014-07-11 23:03:07 +02:00
Fabien Franzen a58dbe3a54 More validations and tests
Added validatesAbsenceOf. Handle async with if/unless prevention of
validators correctly. See: #170 #158
2014-07-11 22:56:02 +02:00
Fabien Franzen 5f1431aa05 Don't check uniqueness of blank values 2014-07-11 22:07:57 +02:00
Fabien Franzen 6aaa3f216e RelationDefinition applyScope/applyMapping
Add the ability to set static/dynamic filtering (where, order, limit,
skip, fields …) and property mapping/transfer (de-normalization) for
hasMany/hasOne.
2014-07-11 15:29:47 +02:00
Raymond Feng a37129bdff Allows default model class to be configured 2014-07-08 14:04:20 -07:00
Raymond Feng e45834b454 Merge pull request #156 from strongloop/feature/fix-lb-353
Make sure type of the foreign key match the primary key
2014-06-27 10:08:54 -07:00
Raymond Feng e0c7619908 Normalize filter.order and enforce more checks 2014-06-26 23:40:20 -07:00
Raymond Feng 4515491318 Make sure type of the foreign key match the primary key
See https://github.com/strongloop/loopback/issues/353
2014-06-26 23:38:04 -07:00
Raymond Feng ce8254125f Merge branch 'master' into 2.0 2014-06-21 12:53:46 -07:00
Raymond Feng 3edee5c4c5 Work around for Date default
See https://github.com/strongloop/loopback-connector-postgresql/issues/15
2014-06-21 12:53:06 -07:00
Raymond Feng 44de2da21f Merge branch 'master' into 2.0 2014-06-20 23:02:37 -07:00
Raymond Feng a2a91499dd Fix the test case 2014-06-20 21:07:26 -07:00
Raymond Feng 3f7e85101d Merge pull request #140 from strongloop/feature/refactor-relation
Feature/refactor relation
2014-06-20 20:56:44 -07:00
Raymond Feng 86073cb480 Merge pull request #144 from strongloop/feature/add-update
Feature/add update
2014-06-20 12:28:48 -07:00
Raymond Feng b07c36eab7 Use async for flow control 2014-06-20 12:05:42 -07:00
Raymond Feng 1833352238 More clean up for the scope processing 2014-06-19 12:00:49 -07:00
Raymond Feng 177752e144 Add more jsdocs 2014-06-19 11:13:24 -07:00
Raymond Feng 7c71e1e53b Merge pull request #141 from strongloop/feature/fix-perf
Feature/fix perf
2014-06-18 22:40:00 -07:00
Raymond Feng 888d15ce1c Optimize model instantiation and conversion 2014-06-18 22:13:52 -07:00
Raymond Feng a487eb57cd Add like/nlike support for memory connector 2014-06-17 23:19:28 -07:00
Raymond Feng ad3af82923 Add support for updating multiple instances with query 2014-06-17 16:30:02 -07:00
Raymond Feng 4b9d98c6ce Allows skip or offset
See https://github.com/strongloop/loopback/issues/336
2014-06-17 09:07:55 -07:00
Raymond Feng 2db43c58e5 Add support for hasOne 2014-06-16 01:17:37 -07:00
Raymond Feng 1406c22a64 Refactor relation into classes 2014-06-15 15:53:58 -07:00
Raymond Feng bb57fcbe11 Fix the comparison for null/boolean values 2014-06-10 16:11:50 -07:00
Raymond Feng b5816506e0 Add boolean tests 2014-06-06 09:28:08 -07:00
Raymond Feng 171642ff48 Make sure the records are sorted by seq 2014-06-06 09:09:56 -07:00
Raymond Feng 0191e3c2db Add more tests 2014-06-06 08:48:05 -07:00
Raymond Feng 5f3c856d2e Fix the logical operator check 2014-06-04 14:23:53 -07:00
Raymond Feng 42c1ad3dca Normalize/validate the query filter object 2014-06-02 15:57:44 -07:00
Raymond Feng 97b1501c1f Keep undefined/null values for the array type
This allows connectors to distinguish between empty array and
undefined/null. For example, mongodb will not override existing array
properties if the value is undefined.
2014-05-27 21:59:21 -07:00
Miroslav Bajtoš 65fa7a1c00 validations: include more details in `err.message`
Modify ValidationError constructor to include the model name and
a human-readable representation of the validation errors (messages)
in the error message.

Before this change, the message was pointing the reader
to `err.details`.  Most frameworks (e.g. express, mocha) log only
`err.message` but not other error properties, thus the logs were
rather unhelpful.

Example of the new error message:

    The `User` instance is not valid. Details: `name` can't be blank.
2014-05-27 21:59:21 -07:00
Raymond Feng 050353f11d Keep undefined/null values for the array type
This allows connectors to distinguish between empty array and
undefined/null. For example, mongodb will not override existing array
properties if the value is undefined.
2014-05-27 13:18:21 -07:00
Ritchie Martori 69b0355fa7 Merge pull request #115 from strongloop/refactor/remove-remoting
Remove remoting metadata
2014-05-20 13:59:33 -07:00
Miroslav Bajtoš 05410d56e1 validations: include more details in `err.message`
Modify ValidationError constructor to include the model name and
a human-readable representation of the validation errors (messages)
in the error message.

Before this change, the message was pointing the reader
to `err.details`.  Most frameworks (e.g. express, mocha) log only
`err.message` but not other error properties, thus the logs were
rather unhelpful.

Example of the new error message:

    The `User` instance is not valid. Details: `name` can't be blank.
2014-05-20 11:00:19 +02:00
Ritchie Martori dc9c9b2bd4 Remove remoting metadata 2014-05-16 12:33:17 -07:00
Raymond Feng 8f9dc1b867 Add support for logical operator (AND/OR) 2014-05-15 08:56:00 -07:00
Miroslav Bajtoš 2a74bdc4de validations: support multi-key unique constraint
Modify the "unique" validator to accept additional property names to
narrow the space of rows searched for duplicates.

Example:

Consider `SiteUser` belongsTo `Site` via `siteId` foreign key.
Inside every site, the user email must be unique. It is allowed to
register the same email with multiple sites.

    SiteUser.validateUniquenessOf('email', { scopedTo: ['siteId'] });
2014-05-15 09:15:44 +02:00
Raymond Feng 3f410cae21 Add test cases for updateOrCreate/save and fix related issues 2014-05-09 15:27:45 -07:00