Commit Graph

958 Commits

Author SHA1 Message Date
Raymond Feng cadacc44bb Create scoped methods for belongsTo and improve docs 2014-03-17 08:40:40 -07:00
Raymond Feng 1dc0c34252 Fix the connector resolver to make sure known connectors are used 2014-03-17 08:32:37 -07:00
Raymond Feng bef90bd529 Refactor the serialize/deserialize into two functions 2014-03-17 08:32:37 -07:00
crandmck aa11aad298 Fix some small errors 2014-03-13 16:26:29 -07:00
crandmck 9c2098cd35 Updates to JSDoc comments for API doc 2014-03-12 16:28:46 -07:00
Raymond Feng 464d23891b Merge pull request #82 from strongloop/feature/ldl-scopes
Allows scopes to be defined in LDL
2014-03-04 09:50:27 -08:00
Raymond Feng d14c58775d Use debug module for logging 2014-03-04 09:42:55 -08:00
Raymond Feng ab8076d44a Merge pull request #80 from strongloop/feature/remoting-belongsTo
Make the belongsTo relation remotable
2014-03-04 08:57:57 -08:00
Raymond Feng ed7e2e2ada Fix the parameter name 2014-03-04 08:56:16 -08:00
Raymond Feng 24c4381221 Allows scopes to be defined in LDL 2014-03-03 17:16:37 -08:00
Raymond Feng 510f5ef6ac Check the Array type
See https://github.com/strongloop/loopback-connector-mongodb/issues/21
2014-03-03 15:52:49 -08:00
Raymond Feng 14745b1305 Make the belongsTo relation remotable 2014-03-03 15:03:05 -08:00
Raymond Feng 925402fdb6 Merge pull request #78 from pandaiolo/master
Fix, model builder setter will not try to cast value if already the proper type
2014-02-27 10:38:28 -08:00
Aurelien Chivot dfe1ea1655 Fix, model builder setter will not try to cast value if already the proper type 2014-02-26 21:10:15 +01:00
Raymond Feng 44a62d01af Allows unknown properties to be saved for non-strict models
See https://github.com/strongloop/loopback/issues/199
2014-02-24 18:38:45 -08:00
Ritchie Martori 8ae292539e Merge pull request #74 from strongloop/feature/dao-override
Override existing methods when mixing in DAO methods
2014-02-21 09:04:52 -08:00
Ritchie Martori dd597d2197 Refactor mixin and always redefine proxy/delegate methods 2014-02-20 17:25:07 -08:00
Ritchie Martori 38c7a16da2 Override existing methods when mixing in DAO methods 2014-02-19 17:10:56 -08:00
Raymond Feng 9192c27409 Leave the item type introspection for List 2014-02-14 11:21:30 -08:00
Raymond Feng 12a624d99c Rewrite the List class for typed array 2014-02-14 10:41:00 -08:00
Raymond Feng 7e45a1fda1 Fix the include with array value 2014-02-14 10:40:45 -08:00
Raymond Feng 061b274055 Merge branch 'partial-fix-for-58' of github.com:arlaneenalra/loopback-datasource-juggler 2014-02-12 21:55:53 -08:00
Raymond Feng dbd97eb423 Merge pull request #68 from strongloop/feature/fix-lb-162
Make sure own properties are copied by toObject for non-strict mode
2014-02-11 14:29:21 -08:00
Raymond Feng 85232f31b3 Clean up the options for model constructor 2014-02-10 22:38:59 -08:00
arlaneenalra 5252d0e805 Move new var into thunk.
There really was no reason for it to be in the
outer context.
2014-02-05 22:21:27 -06:00
arlaneenalra abd46961da Use type converted data when writing back to database.
This allows foreignKey types and other custom types
to be converted into natvie values before writing them
to the database.
2014-02-04 23:10:42 -06:00
Raymond Feng 1961fbeefe Enhance the assertions 2014-02-03 20:52:01 -08:00
Ritchie Martori 61a54da418 Merge pull request #65 from strongloop/feature/change-hook
Add change / delete events
2014-01-30 13:54:47 -08:00
Raymond Feng ee5b351398 Make sure own properties are copied by toObject for non-strict mode
See https://github.com/strongloop/loopback/issues/162
2014-01-30 11:51:34 -08:00
Raymond Feng da571c0c23 Use String[] for types and add test for supported types 2014-01-29 17:19:07 -08:00
Raymond Feng cf200a2e27 Add getType/getDefaultIdType from connectors 2014-01-29 17:19:07 -08:00
Raymond Feng e65d21dcdb Merge pull request #67 from strongloop/feature/memory-persistence
Add an option for the memory connector to persist model instances
2014-01-29 17:18:00 -08:00
Raymond Feng 130dcdb582 Fix the write closure to use the correct task info 2014-01-29 13:41:42 -08:00
Raymond Feng 6b535f5d1c Add a file option for the memeory connector to persist data 2014-01-29 12:04:09 -08:00
Ritchie Martori e909749455 Add tests for change / delete events 2014-01-29 11:03:04 -08:00
Raymond Feng c008c4d30a Add more comments 2014-01-28 23:01:11 -08:00
Raymond Feng 2a57a909f0 Clean up lookupModel 2014-01-28 18:00:12 -08:00
Raymond Feng 43637a690d Handle hasMany.though 2014-01-28 17:59:59 -08:00
Ritchie Martori bef1bc1ca4 Add change / delete events 2014-01-28 13:51:45 -08:00
Raymond Feng 93c18163c8 Make sure __cachedRelations is not enumerable 2014-01-28 09:57:23 -08:00
Raymond Feng 1339250c8f Promote the included relations as properties 2014-01-27 15:56:04 -08:00
Raymond Feng 2b8c1ebaee Reformat the code 2014-01-24 09:09:53 -08:00
Raymond Feng 58a06272c3 Merge pull request #61 from strongloop/feature/fix-foreign-key
Use the primary key type for the generated foreign key
2014-01-24 08:31:02 -08:00
Raymond Feng c374cc89cd Use the primary key type for the generated foreign key 2014-01-21 09:47:32 -08:00
Miroslav Bajtoš dbb7c6d9ae Fill ModelClass.http.path
Set the HTTP route to `'/' + pluralModelName` so that we don't have
to duplicate this bit of logic in strong-remoting and other places.
2014-01-21 16:31:11 +01:00
Raymond Feng 2a50388894 Make the code testable following the review comments 2014-01-13 11:06:02 -08:00
Raymond Feng acd02bf482 Allows the full module name for connectors 2014-01-09 17:03:37 -08:00
Raymond Feng d9d9d82141 Add more comments 2013-12-20 17:49:14 -08:00
Raymond Feng f1773857bb Fix the remote delegation 2013-12-20 17:28:21 -08:00
Raymond Feng 1f965bfedb Fix the remoting method with the current receiver (this) 2013-12-20 14:47:41 -08:00
Raymond Feng e1ec152c78 Add models to LDL options
1. Use 'models' to specify the dependencies to other models
2. The 'models' property is an object, such as:

{
    Model1: 'Model1',
    Model2: Model2
}

3. The model classes will be injected into the newly defined class as
static properties using the keys from the models option.
2013-12-18 16:13:41 -08:00
Raymond Feng aabe5fb1c4 Fix a bug in merging ACLs 2013-12-16 17:14:56 -08:00
Raymond Feng 3d9061aa69 Make the identation consistent for now 2013-12-16 08:40:06 -08:00
Raymond Feng 1b9edbcfcb Fix a regression in mongodb connector 2013-12-15 22:51:47 -08:00
Raymond Feng 8d1d6f4466 Add more comments 2013-12-15 21:43:21 -08:00
Raymond Feng 9890af119e Check for null & undefined values 2013-12-14 09:54:28 -08:00
Raymond Feng fab504b5d9 Fix the coercion issue related to GeoPoint near 2013-12-14 09:49:11 -08:00
Raymond Feng bf592413e1 Dedupe the alias methods during mixin
To prevent the same method from showing up multiple times in API explorer,
for example, Model.deleteById, Model.removeById
2013-12-13 16:45:31 -08:00
Ritchie Martori 749a494e53 Always call inherits to ensure prototypes are setup 2013-12-13 11:27:29 -08:00
Raymond Feng 441596b870 Merge pull request #47 from strongloop/feature/query-coercing
Coerce query values of where clause based on property types
2013-12-10 10:09:42 -08:00
Raymond Feng 29405976fb Merge settings for base and sub models 2013-12-06 15:52:39 -08:00
Raymond Feng 2e4ed3f057 Merge pull request #48 from strongloop/feature/fix-discovery
Attach models to the data source
2013-12-05 15:40:43 -08:00
Raymond Feng e5824356ca Fix belongsTo relation 2013-12-04 21:38:40 -08:00
Raymond Feng 8360576c40 Attach models to the data source 2013-12-04 15:24:53 -08:00
Raymond Feng 52d2c8425f Make all methods proxied for DAO 2013-12-04 13:44:25 -08:00
Raymond Feng abe6d2bb22 Add more tests to address the PR comments 2013-12-04 10:00:33 -08:00
Raymond Feng ed6d8839ba Add a test case 2013-12-03 21:27:46 -08:00
Raymond Feng a953ba13de Clone shared methods so that they can be customized per model 2013-12-03 21:14:12 -08:00
Miroslav Bajtos b5e0035d73 Improve properties of ValidationError
- change `statusCode` from 400 to 422
- nest `context` and `codes` inside `details`
- add `details.messages`
- reword the main error message

Remove the call to Error's constructor from ValidationError constructor,
because it's a no-op - Error's constructor creates a new
instance when called via `.call()`.
2013-12-02 21:35:47 +01:00
Raymond Feng 2df0c4b21d Coerce types for values of where clause 2013-11-29 14:45:50 -08:00
Miroslav Bajtos f7c48c0d72 REST call of DataAccessObject.findById returns 404
Modify the remoting configuration of `DataAccessObject.findById()`
and add a `rest.before` handler that converts `null` to 404 error.

The change is covered by a test in loopback project.
2013-11-21 19:05:52 +01:00
Raymond Feng 8d9d73efff Add properties/methods to DataSource from ModelBuilder 2013-11-20 10:56:48 -08:00
Raymond Feng a53eac5307 Merge pull request #42 from strongloop/feature/fix-ds-attach
Fix the model attachment to data source
2013-11-19 10:56:55 -08:00
Raymond Feng 2bcdea76f5 Fix the model attachment to data source 2013-11-19 10:49:54 -08:00
Raymond Feng 05eae4aa3e Replace all with find to make it consistent 2013-11-18 11:39:07 -08:00
Raymond Feng 995a2139c8 Rename association to relation 2013-11-15 20:29:20 -08:00
Raymond Feng 7f6398f4c5 Fix the reference to modelBuilder/dataSource 2013-11-15 13:54:15 -08:00
Raymond Feng b5e0f14249 Separate the modelBuilder ref from dataSource 2013-11-15 11:12:33 -08:00
Raymond Feng 526d126e41 Fix the relation lazy setup 2013-11-11 22:06:43 -08:00
Raymond Feng 275bb6ffac Stop overwriting the static methods 2013-11-11 22:05:50 -08:00
Raymond Feng ec7f79e935 Ensure the model is attached to DataSource for relations 2013-11-09 22:16:32 -08:00
Raymond Feng 7aa2eefec4 Remove inheritence from DataSource to ModelBuilder 2013-11-08 17:13:00 -08:00
Raymond Feng 0b899b0542 Allow settings.base to specify the base model 2013-11-07 17:11:17 -08:00
Raymond Feng 580ce14f0d Extract the relation types 2013-11-07 13:30:54 -08:00
Raymond Feng 566da386ae Refactor the relation handling and enable it with attach 2013-11-07 13:09:09 -08:00
Raymond Feng 34107a6a26 Redefine the existing class if it's resolved 2013-11-06 14:00:22 -08:00
Raymond Feng 68cf633795 Add support for hasMany-through and more tests 2013-11-05 09:29:24 -08:00
Raymond Feng 4fbec288c4 Enable deferred type/relation resolutions 2013-11-04 22:53:02 -08:00
Ritchie Martori 65bb5c8ead Merge pull request #33 from strongloop/get-datasource
Remove model.dataSource property / Add model.getDataSource() method
2013-10-31 14:50:56 -07:00
Ritchie Martori 597a775e4c Add model.getDataSource() method 2013-10-31 11:46:12 -07:00
Raymond Feng d0055d8591 Fix removeUndefined to bypass non-plain objects
traverse.map() transform custom objects such as Date or ObjectID into
plain objects and it breaks the BSON serialization
2013-10-29 22:16:43 -07:00
Raymond Feng dff3367f3a Fix the regression when 1st arg is the connector module 2013-10-29 13:04:23 -07:00
Raymond Feng 37ced0111e Merge pull request #30 from strongloop/ds-url
Support datasource/connector configuration using URL string
2013-10-28 10:58:45 -07:00
Raymond Feng 24e93248d1 Merge pull request #29 from strongloop/scope-remoting
Create remote functions for predefined scopes/relations
2013-10-27 12:59:57 -07:00
Raymond Feng 8ad0194a51 Add a relation example following Ruby on Rails active records 2013-10-27 12:55:01 -07:00
Raymond Feng 2ae0fd8804 Honor the model plural name 2013-10-25 16:25:05 -07:00
Raymond Feng f3011216b5 Support datasource/connector configuration using URL string 2013-10-25 16:18:02 -07:00
Raymond Feng c3d7fd0f1c Create remote functions for predefined scopes/relations 2013-10-24 20:37:43 -07:00
Raymond Feng fc2a53562e Check undefined/null data 2013-10-24 18:43:55 -07:00
Raymond Feng 8a615324d0 Merge pull request #25 from strongloop/ds-attach
Fixes for data source juggler
2013-10-23 11:28:14 -07:00
Raymond Feng 32dbe9cb21 Move resolveType to ModelBuilder 2013-10-17 14:23:29 -07:00
Ritchie Martori fcb35cc3eb Fix prototype mixin bug 2013-10-11 18:37:45 -07:00
Raymond Feng dd936b15a2 Make sure model definition is built when attaching to a DS 2013-10-11 16:35:17 -07:00
Raymond Feng 9ec9f654c7 Remove undefined values from the query object 2013-10-11 11:50:00 -07:00
Raymond Feng aed3fb0e06 Log more information for the connection failure 2013-10-11 11:48:12 -07:00
Raymond Feng 64f57a2297 Handle connection errors 2013-10-10 22:47:26 -07:00
Ritchie Martori 95c14fa97d Fix EventEmitter mixin 2013-10-08 15:48:17 -07:00
Raymond Feng b8f94f5777 Make sure foreign key properties are fully registered 2013-10-07 18:01:31 -07:00
Raymond Feng 0bfc362b18 Use for-in loop to support properties from the super class 2013-10-06 21:27:02 -07:00
Raymond Feng 931636eda4 Allow the id(s) to be redefined by subclass 2013-10-06 21:13:52 -07:00
Raymond Feng 294ebc1ccf Allow to reference a model as type by name 2013-10-05 11:13:10 -07:00
Raymond Feng 2f575482c0 Code clean up 2013-10-05 10:53:13 -07:00
Raymond Feng 7f170a0542 Add more tests and fix toJSON 2013-10-04 21:21:12 -07:00
Raymond Feng 2a15bb917a Fix the foreign key definition 2013-10-04 15:49:13 -07:00
Raymond Feng 409d256e47 Add settings property back to the model class 2013-10-04 15:48:39 -07:00
Raymond Feng 24d87976e8 Merge branch 'master' into juggler-tidyup
Conflicts:
	lib/model.js
2013-10-04 14:32:51 -07:00
Raymond Feng 04bda5c138 Set name and settings 2013-10-04 12:54:14 -07:00
Raymond Feng ee426b63fc Reset _ids for rebuild 2013-10-04 12:41:01 -07:00
Raymond Feng 1ae9478496 Fix the columnName 2013-10-03 14:49:03 -07:00
Raymond Feng d0cdbd84ea Use super_ to call the base class 2013-10-03 09:14:24 -07:00
Raymond Feng 691743493c Fix copy of model definitions 2013-10-02 17:20:54 -07:00
Raymond Feng 1963ea9fb1 Use ModelDefinition to access model name/properties/settings 2013-10-02 15:18:50 -07:00
Raymond Feng fad6ee5e1d Refactor/cleanup the data source juggler implementation
- Add a ModelDefinition class to encapsulate the model schema handling
- Add a Connector class as the base class for connector implementations
- Optimize attachTo and mixin
- Rename some properties/methods
2013-10-01 22:14:21 -07:00
Raymond Feng 92cd7d15a6 Add a ModelDefinition class 2013-09-20 22:22:49 -07:00
Raymond Feng 1575c87caf Make sure schemaless property value is honored over __data 2013-09-18 16:34:52 -07:00
Raymond Feng bf223320ea Allow connector to report failure during initialization 2013-09-12 13:32:53 -07:00
Raymond Feng f4d62e54e6 Add error stack trace for ValidationError
The issue was initially reported by SLA-370.
2013-09-09 10:12:12 -07:00
Raymond Feng 21e6fddf1a Check the filter param to make sure we have a default value
sls-sample-app is failing if we hit http://localhost:3000/locations/findOne

In this case, a undefined param is passed in.

The fix now sets it to {} if the value is undefined/null
2013-09-06 13:42:12 -07:00
Raymond Feng 038f30cb95 Fix the conflicts between MongoDB _id & juggler's internal prefix 2013-08-30 16:59:17 -07:00
Raymond Feng bfcd850dfe Merge pull request #8 from strongloop/id-fix
Allows custom name of the id property for the memory connector
2013-08-30 10:59:50 -07:00
Raymond Feng 84a40cc1c6 Merge pull request #7 from strongloop/SLA-422
Mark id arguments to be required
2013-08-30 10:49:16 -07:00
Raymond Feng f71dc8fe39 Set default value 2013-08-28 21:53:55 -07:00
Raymond Feng c2eb1f55f0 Fix the property population for schemaless models 2013-08-28 21:49:05 -07:00
Raymond Feng 0866f33cec Check the existence of id 2013-08-28 21:39:59 -07:00
Raymond Feng 6f111f8122 Allows custom name of the id property for the memory connector 2013-08-27 22:32:01 -07:00
Raymond Feng cb00aad473 Mark id arguments to be required 2013-08-27 22:03:59 -07:00
Raymond Feng 59841a04a8 Set strict to false by default for non-relational data sources 2013-08-26 13:38:24 -07:00
Raymond Feng ecc142b4d2 Disable remoting for reload 2013-08-26 10:54:26 -07:00
Raymond Feng be15eabc36 Merge pull request #5 from strongloop/memory-connector-ids
Track the greatest id to prevent records from being overriden
2013-08-26 10:52:13 -07:00
Raymond Feng 7234c9822c Add descriptions for remote method paramters 2013-08-23 17:04:08 -07:00
Raymond Feng 43a5398792 Fix the remote method descriptions 2013-08-23 14:08:47 -07:00
Raymond Feng bede7ab499 Track the greatest id to prevent records from being overriden 2013-08-22 16:44:02 -07:00
Raymond Feng 6407098126 Update descriptions to use data source 2013-08-22 13:30:13 -07:00
Raymond Feng a1e4457794 Refactor the shared method declaration and add descriptions 2013-08-22 12:24:02 -07:00
Raymond Feng cf07563414 Fix the message 2013-08-20 16:14:27 -07:00
Raymond Feng 0fd167a41d Use DEBUG or NODE_DEBUG env to override the debug flag 2013-08-18 23:11:32 -07:00
Raymond Feng 9482d3c7de Fix the where option for delete 2013-08-18 10:58:53 -07:00
Raymond Feng 705a1fc2c9 Update the remote methods 2013-08-16 16:44:31 -07:00
Ritchie Martori d5ab26509a Merge pull request #1 from strongloop/id-fix
Fix the id references to allow custom name other than 'id'
2013-08-16 14:46:50 -07:00
Raymond Feng 29c95a4ec7 Remove the deletion of property type as the instane is shared by the base model class 2013-08-15 16:50:50 -07:00
Raymond Feng 281cc38017 Fix the id references to allow custom name other than 'id' 2013-08-14 23:14:44 -07:00
Raymond Feng 8aec0a3b47 Add missing declaration 2013-08-14 17:32:38 -07:00
Raymond Feng 6c0f2483b3 Update jsdocs 2013-08-13 09:37:27 -07:00
Raymond Feng 2e20df2dd3 Add docs.json and jsdocs 2013-08-09 15:16:32 -07:00
Raymond Feng d3bf5c20ac Add an optional models argument to automigrate/autoupdate 2013-08-08 08:30:26 -07:00
Raymond Feng 0a5c0ff77d Refactor introspection to ModelBuilder 2013-08-07 14:51:32 -07:00
Raymond Feng f3443959a1 Rename 'loopback-data' to 'loopback-datasource-juggler' 2013-07-30 14:10:03 -07:00
Raymond Feng 7ce6cfc9ab Allows connector property to be a string 2013-07-30 10:52:30 -07:00
Ritchie Martori 08505d1e78 Add required validation 2013-07-28 13:17:12 -07:00
Raymond Feng 57c181c8b9 Bring up json object introspection to build models 2013-07-26 13:06:43 -07:00
Raymond Feng 0e4162af2a Fix the constructor 2013-07-25 22:39:16 -07:00
Raymond Feng 1109f671da Add precision/scale for sync discovery 2013-07-25 15:20:19 -07:00
Raymond Feng dcada03c43 Add precision/scale 2013-07-25 15:06:00 -07:00
Raymond Feng 630aad2071 Refactor types out 2013-07-25 07:48:31 -07:00
Raymond Feng adb724e3b2 Fix the ref to dataSource 2013-07-24 22:58:57 -07:00
Raymond Feng 9b422752a6 Allows non-strict mode to accept unknown properties 2013-07-24 22:58:57 -07:00
Raymond Feng 96787ad25f Fix id references 2013-07-24 22:58:57 -07:00
Ritchie 5bf2d1ff23 Add root true to remote methods 2013-07-24 17:21:35 -07:00
Raymond Feng 752aedb80d Rename adapters to connectors 2013-07-23 14:40:44 -07:00
Raymond Feng ac76666b7b Set up connector from the data source 2013-07-23 13:19:35 -07:00
Raymond Feng 1970c99424 Rename dataSource() to avoid conflicts with the property 2013-07-23 12:44:04 -07:00
Raymond Feng 4df5a02676 Fix schema references 2013-07-23 12:16:12 -07:00
Raymond Feng 9b169efc8c Set up connector/adapter when postInit is not called 2013-07-23 12:05:08 -07:00
Raymond Feng 6af4b1ba2f More renames: schema -> dataSource, adapter -> connector 2013-07-23 11:16:43 -07:00
Raymond Feng 127fb32d02 Add the id arg 2013-07-22 09:57:55 -07:00
Raymond Feng b7f7f71b15 Add static deleteById 2013-07-22 09:42:09 -07:00
Raymond Feng 588b328e62 Fix the model prop lookup 2013-07-21 17:27:31 -07:00
Ritchie Martori 22db369fb8 Allow queries to filter fields 2013-07-17 09:05:37 -07:00
Ritchie Martori d4ca20c01a Add filter.fields support to dao and memory connector 2013-07-16 17:53:52 -07:00
Raymond Feng be21815e7b Rename jugglingdb to loopback-data 2013-07-16 11:59:53 -07:00
Ritchie Martori a4247ad59f Remove updateAttribute as remote method 2013-07-15 19:44:29 -07:00
Ritchie Martori 0aa0cabdd4 Fix inherit bug 2013-07-15 18:22:49 -07:00
Ritchie Martori 2de55df939 Fix extend by using util.inherits 2013-07-15 10:44:34 -07:00
Raymond Feng 12c28ce363 Fix typos 2013-07-15 10:38:54 -07:00
Raymond Feng ef671825ff Only flatten array/object for relational DBs 2013-07-12 19:10:42 -07:00
Raymond Feng 8e01e17bdb Add support for nesting objects with an array 2013-07-12 18:59:43 -07:00
Raymond Feng 09ab8356b8 Fix the array data population 2013-07-12 12:36:14 -07:00
Raymond Feng 296b258f35 Add http mapping for create/updateAttributes methods 2013-07-11 16:49:18 -07:00
Raymond Feng aa5bba3bac Fix the ref to getSchemaType 2013-07-11 16:04:28 -07:00
Raymond Feng 194f68468a Add support for nesting schema 2013-07-11 14:24:47 -07:00
Raymond Feng 049f4c0c38 Add Object type 2013-07-11 11:04:31 -07:00
Raymond Feng 12199ad779 Add support to use adapter constructor for initialization 2013-07-11 09:55:26 -07:00
Ritchie Martori 7684fe2946 Change default create method from save to create for remoting 2013-07-02 20:28:00 -07:00
Ritchie Martori c8bfc5802a Add event emitter methods to models. 2013-07-02 14:59:24 -07:00
Ritchie Martori 522291bf08 Add support for extending models 2013-07-01 16:49:43 -07:00
Ritchie Martori dbd5efed50 Revert adapter serialization. Remove geo point distance indicator. 2013-07-01 13:16:51 -07:00
Ritchie Martori e6a88ac254 Add properties to ModelClass during definition 2013-06-27 18:25:42 -07:00
Ritchie ce63ef9ac2 Fix global leak and incorrect var 2013-06-27 12:21:31 -07:00
Raymond Feng 64da1d441a Add alias to destroy/destroyAll 2013-06-25 21:08:34 -07:00
Raymond Feng 0ae61d3b53 Alias destroy/destroyAll 2013-06-25 20:36:08 -07:00
Ritchie Martori 6cb53e5001 Add in memory geo filtering. 2013-06-25 20:31:00 -07:00
Ritchie Martori d730aab674 Move geo filter creation into reusable module. 2013-06-24 16:38:50 -07:00
Ritchie Martori 572445de39 Rename long to lng 2013-06-24 15:32:34 -07:00
Ritchie Martori 6856ff7254 Add geo filtering for memory adapter 2013-06-24 15:21:59 -07:00
Ritchie Martori 008b406dd7 model.find => model.findById, model.all => model.find 2013-06-24 12:42:58 -07:00
Ritchie Martori ff37cc001a Fix incorrect variable name in updateAttributes 2013-06-21 15:01:40 -07:00
Ritchie Martori 0a3e642c9e Fix memory adapter updateAttributes issue.
Callback with an error if an id was not provided or if a model was not
found by that id.
2013-06-21 14:56:23 -07:00
Raymond Feng 4940187663 Fix the schema building 2013-06-21 14:15:24 -07:00
Raymond Feng 3830f0bfda Normalize the schema definition 2013-06-21 14:04:24 -07:00
Raymond Feng a6ad39ba0f Update the discover apis to take options 2013-06-20 15:51:24 -07:00
Michael Schoonmaker bc62d28b12 Removed a stray log. 2013-06-19 13:15:57 -07:00
Raymond Feng 3b731b1a12 Move the _operations={} up 2013-06-18 14:44:30 -07:00
Raymond Feng 72e8e7230f Work around the JDB test coverage tool limitation. See https://github.com/1602/semicov 2013-06-18 12:07:13 -07:00
Raymond Feng b3e98f0c6f Pass in the options 2013-06-18 11:50:13 -07:00
Ritchie 502b0512d3 Support string types when defining properties 2013-06-17 16:42:13 -07:00
Ritchie d442c40f25 Rename discoverModels to discoverModelDefinitions 2013-06-17 11:43:20 -07:00
Ritchie 25f2920e95 Handle separate settings and adapter objects 2013-06-17 07:54:51 -07:00
Ritchie 864135e0e4 Remove console log 2013-06-17 07:39:31 -07:00
Ritchie 473dd794ef Fix missing settings 2013-06-14 14:22:51 -07:00
Ritchie bf83a76eae Fix missing connector alias 2013-06-14 13:56:44 -07:00
Ritchie b78050410d Merge branch 'asteroid-0.7'
Conflicts:
	lib/datasource.js
2013-06-13 16:27:31 -07:00
Ritchie Martori 7e23393e99 Fixed memory adapter filtering + asteroid compatibility upddates 2013-06-12 15:45:31 -07:00
Raymond Feng a47bc15e64 Make sure options is present 2013-06-11 14:56:26 -07:00
Ritchie 3628bd5be8 Fix remoteEnabled bug 2013-06-11 11:11:10 -07:00
Ritchie Martori 51d4a74264 Revert "Asteroid 0.7 updates"
This reverts commit c87abafec8.
2013-06-11 09:04:37 -07:00
Ritchie Martori c87abafec8 Asteroid 0.7 updates 2013-06-11 09:03:11 -07:00
Raymond Feng 36c22ab972 Adjust the mixins 2013-06-05 14:34:05 -07:00
Ritchie Martori adf7c49c91 Allow dao.find() and exists() to take any type for id 2013-06-05 07:39:26 -07:00
Raymond Feng 24a1c76c59 Fix the receiver 2013-06-03 08:51:17 -07:00
Raymond Feng 567efc5698 Add discoverExportedForeignKeys 2013-06-02 23:00:11 -07:00
Raymond Feng a2da90867f Add sync versions of discovery 2013-06-01 23:03:25 -07:00
Raymond Feng 56af9673c1 Avoid duplicate connecting 2013-05-31 13:40:50 -07:00
Raymond Feng 9d74759f90 Improve connect/disconnect 2013-05-31 13:10:09 -07:00
Ritchie 1bb8047b57 Merge branch 'master' of github.com:strongloop/jugglingdb 2013-05-31 10:28:05 -07:00
Ritchie 5f26eba571 Add plural name to models 2013-05-31 10:27:52 -07:00
Raymond Feng 7b861c2aac Update buildModels and support associations via foreign keys 2013-05-31 10:25:11 -07:00
Raymond Feng 2d62b5ba6a Add support to discover related schemas by foreign keys 2013-05-30 23:13:04 -07:00
Raymond Feng ad14bd9dbc Add more debugging info 2013-05-30 17:23:31 -07:00
Raymond Feng 8912defe8e Enhance support for composite keys 2013-05-30 16:06:04 -07:00
Raymond Feng d9998d8294 Update column type info 2013-05-29 10:03:01 -07:00
Raymond Feng 6255da2ae0 Fix mixin 2013-05-29 07:17:07 -07:00
Raymond Feng 771bf70ec5 Add options including default 2013-05-28 15:40:16 -07:00
Raymond Feng 465a963d2d Adding more tests 2013-05-28 13:50:59 -07:00
Raymond Feng dd8512bc1f Refactor more functions into mixins 2013-05-27 22:20:43 -07:00
Ritchie Martori 50b2036511 Update remoting signatures for dao. 2013-05-24 15:10:34 -07:00
Ritchie 0a8df17135 Merge branch 'master' of github.com:strongloop/jugglingdb 2013-05-24 08:03:11 -07:00
Ritchie ae9cb9a6f2 Add pluralized name to model and remoting method signatures 2013-05-24 08:02:58 -07:00
Raymond Feng 98690a4881 Add docs 2013-05-23 22:40:33 -07:00
Raymond Feng dea07f3a02 Rename adl to be ModelBuilder 2013-05-23 22:20:20 -07:00
Raymond Feng a014fddd8a Add more methods to map column/property names 2013-05-23 21:09:46 -07:00
Ritchie a690f8d8df Add data source attach example 2013-05-23 17:29:03 -07:00
Ritchie 1dee840de5 Add ability to attach data source to an existing model 2013-05-23 16:38:14 -07:00
Raymond Feng 2c2768e929 Fix the mapping 2013-05-23 10:46:01 -07:00
Raymond Feng e51bd2d360 Fix the column mapping 2013-05-22 18:04:05 -07:00
Raymond Feng 31473d3add Fix the id column name 2013-05-22 12:17:14 -07:00
Raymond Feng 5b32141e31 Start to add discoverSchema and name mapping 2013-05-22 10:41:08 -07:00
Raymond Feng aebd7de68c Fix the capitalize 2013-05-21 14:54:14 -07:00
Raymond Feng 0022edb774 Transform the names 2013-05-21 14:43:25 -07:00
Raymond Feng 88f174ee39 Add discoverSchema 2013-05-21 14:25:23 -07:00
Raymond Feng fcdd8c2bca Fix the delegation for discover 2013-05-21 12:00:16 -07:00
Raymond Feng 26230be417 Fix the discover methods 2013-05-21 11:59:16 -07:00
Raymond Feng 184c190223 Bring up the schema loading from json docs 2013-05-20 16:05:59 -07:00
Raymond Feng 347147a36b Remove schema.js 2013-05-17 17:06:40 -07:00
Raymond Feng fca91e3400 Fix the on-demand connection 2013-05-17 16:21:12 -07:00
Raymond Feng 7caaeb2623 Fix the datasource.define 2013-05-17 14:41:04 -07:00
Raymond Feng 8263a6d71b Start to refactor ADL and DataSource 2013-05-17 10:54:14 -07:00
Anatoliy Chakkaev 4c717e4335 Fail uniqueness check in case of db error 2013-05-17 09:01:29 -07:00
Raymond Feng 630b991d1d Refactor the CRUD operations to DataAccessObject 2013-05-17 08:49:57 -07:00
Raymond Feng 3d82fc10b9 Fix the discover keys 2013-05-13 22:10:10 -07:00
Raymond Feng e207628538 Add discover primary/foreign keys 2013-05-13 22:04:29 -07:00
Anatoliy Chakkaev c15ff3cad0 Safer include 2013-05-13 22:04:29 -07:00
Anatoliy Chakkaev 0f040f7814 Fix Problem with DataType Text, closes #278 2013-05-13 22:04:29 -07:00
Anatoliy Chakkaev 06641da2c6 Add context info to validation error 2013-05-13 22:04:29 -07:00
Anatoliy Chakkaev ba75af1490 Only save schema props 2013-05-13 22:04:29 -07:00
Anatoliy Chakkaev 25db533827 Fix tick 2013-05-13 22:04:29 -07:00
Anatoliy Chakkaev 8370538e4e Safe connect call 2013-05-13 22:04:29 -07:00
Anatoliy Chakkaev 23004c12c1 Support define fk with class name 2013-05-13 22:04:29 -07:00
Anatoliy Chakkaev 8099f7edf2 Fix find with NaN id in base-sql 2013-05-13 22:04:29 -07:00
Anatoliy Chakkaev e13149edc5 Added skip/limit to memory adapter 2013-05-13 22:04:29 -07:00
Anatoliy Chakkaev ee05ebcca6 Relations passed to belongsTo.add 2013-05-13 22:04:29 -07:00
Anatoliy Chakkaev 504ae56acd Fix injection in ids 2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev 83027f9ead Accept related objects when creating instance #247 2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev eecbd32d07 Allow null properties for headless models 2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev a73f53521e Fix m2m: only add fk when hasMany have no "through" 2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev c9e97744dd Many-to-many relation
- hasMany {through: Class}
- hasAndBelongsToMany
- some specs in relations.test.js
2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev 9facf369b1 Some tests for scope 2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev 136ea91fbf Organize model.js 2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev c4d4b68413 Datatypes casting 2013-05-13 22:04:28 -07:00
Raymond Feng 5620be1d57 Add discover methods for model names and properties 2013-04-19 14:11:52 -07:00
Raymond Feng ad1b2ad7e9 Only call the orginal method once 2013-04-16 22:25:31 -07:00
Raymond Feng 3613f6e22f Set up the connected handler before connect 2013-04-15 16:05:17 -07:00
Raymond Feng 589908a78f The connecting flag should be set to false initially 2013-04-15 16:00:08 -07:00
Anatoliy Chakkaev 3364102771 Do not assign enumerable schema to object #256 2013-04-07 00:21:42 +04:00
Anatoliy Chakkaev 2fd2157d28 Fix dates in memory adapter 2013-04-06 14:50:23 +04:00
Anatoliy Chakkaev 4943feb230 Merge transactions 2013-04-05 02:13:14 +04:00
Anatoliy Chakkaev 43d1cbd39e Merge 2013-04-05 02:12:34 +04:00
Anatoliy Chakkaev 029dfb6f3b Allow database.js to export function(compound) 2013-04-04 22:24:56 +04:00
Anatoliy Chakkaev 3a355851b6 ValidationError instead Error 2013-04-04 19:31:07 +04:00
Anatoliy Chakkaev 704bc965bd Find on hasMany scope method 2013-04-04 00:46:41 +04:00
Anatoliy Chakkaev f56cbaa150 Added map-reduce and find methods to list 2013-04-03 23:52:19 +04:00
Anatoliy Chakkaev be17763eca Return valid in case of sync validations 2013-04-01 20:13:55 +04:00
Anatoliy Chakkaev b0a1ed3bed Fix validation issue 2013-04-01 20:08:22 +04:00
Anatoliy Chakkaev cf5ed5b877 Transactions 2013-04-01 17:49:12 +04:00
Anatoliy Chakkaev 6d1e47ceaf Schemas switching 2013-03-31 16:35:26 +04:00
Anatoliy Chakkaev 76c7fbd6ec Merge branch 'http' of github.com:NiKnight/jugglingdb 2013-03-31 14:08:38 +04:00
Anatoliy Chakkaev 6449f1ca72 Fix validations 2013-03-31 13:41:02 +04:00
Anatoliy Chakkaev 0776c51994 Batch create 2013-03-31 13:40:37 +04:00
Scott Nonnenberg 2ba862f5af afterDestroy not called on adapter error
Similar to afterCreate and afterUpdate, we don't want to run the afterXXXX handlers if the delete failed according to the adapter.
2013-03-30 17:18:47 -07:00
Anatoliy Chakkaev 5b429e8d41 Fix memory adapter: broken upd attrs 2013-03-30 21:07:16 +04:00
Anatoliy Chakkaev 2f048e79c0 Return instance of object when create 2013-03-30 21:06:09 +04:00
Anatoliy Chakkaev 5540750626 Validation amends
- rename event
- pass data to hooks
- always call hooks (even when no validations set up)
2013-03-28 15:29:11 +04:00
Anatoliy Chakkaev 1f29064b3d Rewrite save and create for correct hooks order
Validation should be called first, and then all other actions
to allow modify data after validation (for example hash
password after validating length.

Issue #242
2013-03-28 15:26:51 +04:00
Anatoliy Chakkaev 48d78b71f6 Rename validation hooks
Name should be "beforeValidate" and "afterValidate"
to be consistent with other hook hames. This change doesnt break
backward compatibility
2013-03-28 15:23:31 +04:00
Anatoliy Chakkaev e75029ebbf Fix memory adapter and test 2013-03-27 17:10:13 +04:00
Anatoliy Chakkaev 2749a1f7e0 Fixes in belongsTo relation definition syntax 2013-03-27 04:48:26 +04:00
Anatoliy Chakkaev cba87ce339 Query testing: findOne 2013-03-27 00:50:13 +04:00
Anatoliy Chakkaev de28603460 Added short syntax for belongsTo 2013-03-27 00:48:14 +04:00
Anatoliy Chakkaev 58e2349575 Fix memory adapter to support lowercase desc order 2013-03-26 23:33:40 +04:00
Anatoliy Chakkaev d5d07d8806 Make tests importable 2013-03-26 04:41:00 +04:00
Anatoliy Chakkaev f76b56d2fe Another way to define belongsTo 2013-03-26 04:39:47 +04:00
Anatoliy Chakkaev 16c826bd4f Rename files 2013-03-25 01:35:08 +04:00
Anatoliy Chakkaev b59fb01b4a Upd memory adapter to work with undefined in dataset 2013-03-25 01:28:08 +04:00
Anatoliy Chakkaev 2fa07e8e1d Rename essentials 2013-03-25 01:27:36 +04:00
Anatoliy Chakkaev 5ea5da0153 Rewrite hooks API
This commit breaks compatibility, but adds consistent API and allow modify data of update
2013-03-25 01:25:10 +04:00
Anatoliy Chakkaev e0b52c6b7e Settings always set 2013-03-23 22:49:34 +04:00
Anatoliy Chakkaev a90fe8da41 Merge branch 'master' of github1602:1602/jugglingdb 2013-03-19 14:19:39 +04:00
Anatoliy Chakkaev ccffd10a58 Added filter, fix [] as type 2013-03-18 23:45:34 +04:00
Scott Nonnenberg bf3234b9f0 http adapter: pre/postProcess, fix destroy and all
preProcess() ensures that null fields are excluded from the wire. I've experienced jQuery/node/express 3.0 turning nulls into empty strings.

postProcess() ensures that Date fields are actually turned back into dates. JSON, you're annoying sometimes.

destroy() is now implemented.

all() now URL encodes any query filters provided.
2013-03-06 18:05:30 -08:00
dgsan 0503ad3295 This is the smash with blunt object fix for #215, since the more flexible #213 was rejected.
There needs to be something done so that types not in `BASE_TYPES` can be parsed without
throwing an exception and making things go nuts when they aren't JSON.

As noted this is the blunt object solution and will not cover all cases, but something needs to be done.
2013-03-05 12:02:07 -07:00
Anatoliy Chakkaev 358f7b788c FIxes in async validations (in sync case), closes 214 2013-03-01 21:13:04 +07:00
Anatoliy Chakkaev 35571dcd58 Add proper type registration 2013-02-22 01:24:20 +07:00
Anatoliy Chakkaev 56db693454 List support for non-object values 2013-02-19 16:33:09 +08:00
Anatoliy Chakkaev 4d75cb74d7 Add some array methods for List 2013-02-18 16:18:09 +08:00
Anatoliy Chakkaev a4ec751424 Eliminated global leak 2013-02-12 17:25:59 +08:00
Anatoliy Chakkaev 4eda7df7bc Described custom validations 2013-02-12 17:05:04 +08:00
Anatoliy Chakkaev 734ab8abd1 If property is array (List) need to convert it to JSON 2013-02-10 04:53:05 +08:00
dgsan cba174b4ff This fixes the apparent scope and comparison issues when calling a foreign key relation. 2013-02-01 10:15:03 -07:00
Anatoliy Chakkaev cdd328c902 Revert validatable fix 2013-01-30 23:08:52 +07:00
Anatoliy Chakkaev 9f0dfeb58a Add attr param to custom validator, closes #200 2013-01-30 22:30:31 +07:00
Anatoliy Chakkaev 5b33c2a0f1 Removed unused experimental stuff 2013-01-29 18:47:03 +07:00
Anatoliy Chakkaev 707fb01713 Make pathTo available in db/schema 2013-01-23 06:31:02 +07:00
Anatoliy Chakkaev 59e80e8454 Fix uniqueness validation (mongo ids) 2013-01-23 03:22:48 +07:00
Anatoliy Chakkaev d03dbfcb99 Throw error when model is not configured for webservice 2013-01-23 03:22:31 +07:00
Anatoliy Chakkaev cefd79dbf6 Return null when findOne could not find record, closes #128 2013-01-22 23:47:14 +07:00
Anatoliy Chakkaev 8cfa00a1b2 Work with cs-compound 2013-01-22 23:27:49 +07:00
Anatoliy Chakkaev 0f592d4bf5 Implement schema.extendModel, closes #157 2013-01-22 01:48:04 +07:00
Anatoliy Chakkaev 91fee1d565 Make memory adapter async 2013-01-22 01:21:43 +07:00
Anatoliy Chakkaev 9dbc8fa50b Implement findOrCreate, requested in #190 2013-01-22 01:21:31 +07:00
Anatoliy Chakkaev 4d47d8348d Revert hasMany change 2013-01-21 23:08:13 +07:00
Anatoliy Chakkaev 1010d5d64d Merge pull request #192 from robblovell/hasmany
Hasmany
2013-01-21 07:42:01 -08:00