Clark Wang
9c147f1b25
fix jshint errors
...
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2014-12-10 19:43:55 +08:00
Clark Wang
7a3e254403
test if cb exists
...
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2014-12-10 19:03:48 +08:00
Clark Wang
b204367aa6
fix nested remoting function throwing error will crash app
...
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2014-12-10 12:04:56 +08:00
Ryan Graham
7c0b2e83eb
Remove unused underscore dependency
2014-12-02 21:53:30 -08:00
Clark Wang
a12c2ece28
Prepend slash for nested remoting paths
...
Fix remoting paths of relation methods to correctly show
in API Explorer.
2014-11-27 09:56:44 +01:00
Raymond Feng
a9b4df1f2d
Expose more loopback middleware for require
2014-11-19 11:32:22 -08:00
Miroslav Bajtoš
2baa4b03a3
Scope app middleware to a list of paths
...
Add a new argument to `app.middleware` allowing developers
to restrict the middleware to a list of paths or regular expresions.
Modify `app.middlewareFromConfig` to pass `config.paths` as the second
arg of `app.middleware`.
Examples:
// A string path (interpreted via path-to-regexp)
app.middleware('auth', '/admin', ldapAuth);
// A regular expression
app.middleware('initial', /^\/~(admin|root)/, rejectWith404);
// A list of scopes
app.middleware('routes', ['/api', /^\/assets/.*\.json$/], foo);
// From config
app.middlewareFromConfig(
handlerFactory,
{
phase: 'initial',
paths: ['/scope', /^\/(a|b)/]
});
2014-11-19 15:42:54 +01:00
Raymond Feng
bd12335542
Merge pull request #814 from strongloop/feature/fix-issue-811
...
Fix the model name for hasMany/through relation
2014-11-18 10:26:54 -08:00
Miroslav Bajtoš
7581ccf260
Merge pull request #796 from strongloop/feature/cleanup-middleware-config-opts
...
Cleanup middleware config opts
2014-11-18 19:10:07 +01:00
Raymond Feng
4c7c8901ff
Fix the model name for hasMany/through relation
2014-11-17 09:44:20 -08:00
Alex Voitau
6f1b5f61ed
Minor: update jsdoc for PersistedModel.updateAll
2014-11-14 20:06:08 -08:00
Miroslav Bajtoš
330292c7f2
server-app: improve jsdoc comments
2014-11-14 09:52:59 +01:00
Miroslav Bajtoš
7647339675
server-app: middleware API improvements
...
- Rename `config.config` to `config.params`
- Modify methods to return `this` (fluent API)
2014-11-14 09:52:26 +01:00
Miroslav Bajtoš
22827b6538
Merge pull request #790 from strongloop/feature/merge-phases
...
Simplify `app.defineMiddlewarePhases`
2014-11-13 09:09:28 +01:00
Miroslav Bajtoš
7fc66a182e
Move middleware sources to `server/middleware`
...
The new location allows developer to use the following identifiers
when loading the middleware using the new declarative style:
app.middlewareFromConfig(
require('loopback/server/middleware/rest'),
{ phase: 'routes' });
app.middlewareFromConfig(
require('loopback/server/middleware/url-not-found'),
{ phase: 'final' });
2014-11-12 12:44:34 +01:00
Miroslav Bajtoš
ae7d99682b
Simplify `app.defineMiddlewarePhases`
...
Refactor the implementation to use the new method `phaseList.zipMerge`.
This is commit is changing the behaviour in the case when
the first new phase does not exist in the current list.
Before the change, all new phases were added just before the "routes"
phase.
After this change, new phases are added to the head of the list,
until an existing phase is encountered, at which point the regular
merge algorithm kicks in.
Example:
app.defineMiddlewarePhases(['first', 'routes', 'subapps']);
Before the change: code throws an error - 'routes' already exists.
After the change: phases are merged with the following result:
'first', 'initial', ..., 'routes', 'subapps', ...
2014-11-12 08:59:56 +01:00
Miroslav Bajtoš
4474f8b029
Merge pull request #786 from strongloop/feature/define-middleware-phases
...
Implement `app.defineMiddlewarePhases`
2014-11-12 08:16:49 +01:00
Raymond Feng
f803ecec55
Make sure loopback has all properties from express
2014-11-11 11:27:39 -08:00
Miroslav Bajtoš
98d439050a
Implement `app.defineMiddlewarePhases`
...
Implement method for registering (new) middleware phases.
- If all names are new, then the phases are added just before
the "routes" phase.
- Otherwise the provided list of names is merged with the existing
phases in such way that the order of phases is preserved.
Example
// built-in phases:
// initial, session, auth, parse, routes, files, final
app.defineMiddlewarePhases('custom');
// new list of phases
// initial, session, auth, parse,
// custom,
// routes, files, final
app.defineMiddlewarePhases([
'initial', 'postinit', 'preauth', 'routes', 'subapps'
]);
// new list of phases
// initial,
// postinit, preauth,
// session, auth, parse, custom,
// routes,
// subapps,
// files, final
2014-11-11 19:45:37 +01:00
Miroslav Bajtoš
beb55ee9f4
Merge pull request #787 from strongloop/feature/app-middleware-v2
...
Implement app.middlewareFromConfig
2014-11-11 19:41:46 +01:00
Miroslav Bajtoš
5578d59631
Implement app.middlewareFromConfig
...
Implement a function registering a middleware using a factory function
and a JSON config.
Example:
app.middlewareFromConfig(compression, {
enabled: true,
phase: 'initial',
config: {
threshold: 128
}
});
2014-11-11 18:00:19 +01:00
Miroslav Bajtoš
038c6a454e
middleware/token: store the token in current ctx
2014-11-11 11:04:41 +01:00
Miroslav Bajtoš
8f5aea3e3b
Fix `loopback.getCurrentContext`
...
- ensure the method is always defined
- return `null` when the context is not active
(we are not inside a request-handling chain)
2014-11-11 11:04:41 +01:00
Miroslav Bajtoš
4e1433b519
Middleware phases - initial implementation
...
Modify the app and router implementation, so that the middleware is
executed in order defined by phases.
Predefined phases:
'initial', 'session', 'auth', 'parse', 'routes', 'files', 'final'
Methods defined via `app.use`, `app.route` and friends are executed
as the first thing in 'routes' phase.
API usage:
app.middleware('initial', compression());
app.middleware('initial:before', serveFavicon());
app.middleware('files:after', loopback.urlNotFound());
app.middleware('final:after', errorHandler());
Middleware flavours:
// regular handler
function handler(req, res, next) {
// do stuff
next();
}
// error handler
function errorHandler(err, req, res, next) {
// handle error and/or call next
next(err);
}
2014-11-10 19:50:58 +01:00
Raymond Feng
747da886c9
Merge pull request #745 from strongloop/feature/allow-acls-settings-config
...
Allows ACLs/settings in model config
2014-11-07 11:15:08 -08:00
Raymond Feng
586ea35071
Allows ACLs/settings in model config
2014-11-07 11:14:40 -08:00
crandmck
3cdbd274d2
Add API doc for context middleware - see #337
2014-11-06 14:07:34 -08:00
Rand McKinney
21b28446bf
Update persisted-model.js
...
Note the PersistedMode.create() can take an array of instances, per #710 .
2014-11-06 10:56:37 -08:00
Miroslav Bajtoš
4fdcbd16af
rest middleware: clean up context config
...
Modify `loopback.rest()` to read the configuration for
`loopback.context` from `app.get('remoting')`, which is the approach
used for all other configuration options related to the REST transport.
2014-11-05 09:13:45 +01:00
Raymond Feng
885f4e047d
Enable the context middleware from loopback.rest
2014-11-05 09:13:45 +01:00
Raymond Feng
246f38c05d
Add context propagation middleware
...
- Implement the middleware `loopback.context`
- Inject context into juggler and strong-remoting
- Make http context optional and default to false
- Optionally mount context middleware from `loopback.rest`
2014-11-05 09:13:44 +01:00
Rand McKinney
0e35c1877c
Changes to JSdoc comments
...
Moved faviconFile to class properties.
2014-11-04 10:59:38 -08:00
Miroslav Bajtoš
48d4ed28d3
Coding style cleanup (Gruntfile, lib)
...
- Gruntfile: add `jshint` and `jscs` as deps of `grunt test`
- Gruntfile: temporarily disable checks of `test` scripts
- .jscsrc: relax jsdoc validation
- .jshintrc: relax the rule for property access via dot notation
- lib: fix remaining style issues
2014-11-04 08:25:35 +01:00
Rob Halff
33096dafa7
Enable jscs for `lib`, fix style violations
2014-11-04 08:25:33 +01:00
Rand McKinney
3d201028e1
Remove doc for debug function
2014-11-03 16:26:33 -08:00
Rand McKinney
c388696d3f
Update registry.js
...
Add missing quotes to examples in JSdoc.
2014-11-03 16:02:48 -08:00
Miroslav Bajtoš
f8c5fc8f6a
Merge pull request #726 from strongloop/feature/apidocs-for-loopback.static
...
Add API docs for `loopback.static`.
2014-11-03 18:33:41 +01:00
Miroslav Bajtoš
edd464aca5
Expose path to the built-in favicon file
...
The path is available via `loopback.faviconFile`.
2014-11-03 10:00:24 +01:00
Miroslav Bajtoš
1c083f1030
Add API docs for `loopback.static`.
2014-11-03 09:20:54 +01:00
Miroslav Bajtoš
292c7ad497
Revert "rest handler options"
2014-10-31 10:06:57 +01:00
Guilherme Cirne
ba6bf3f41b
REST handler options.
2014-10-30 16:58:30 -02:00
Raymond Feng
e0ed755ed3
Make sure GET /:id/exists returns 200 {exists: true|false}
...
https://github.com/strongloop/loopback/issues/679
2014-10-22 14:39:39 -07:00
Rob Halff
b54c70c348
Use === to compare with 0
2014-10-22 18:47:53 +02:00
Rob Halff
84b4fea666
use singlequotes
2014-10-22 18:47:53 +02:00
Rob Halff
4ebf10ae0d
add missing semicolons
2014-10-22 18:47:52 +02:00
Fabien Franzen
568c8662b4
Support per-model and per-handler remoting options
...
Allow the developer to pass custom `remoting` options via Model
settings, e.g.
PersistedModel.extend(
'MyModel',
{ name: String },
{
remoting: { normalizeHttpPath: true }
});
Also add `options` arg to `app.handler`, this object is passed directly
to strong-remoting handler.
2014-10-22 09:54:15 +02:00
Miroslav Bajtoš
80020eb273
lib/application: improve URL building algo
...
When running on Unix and no hostname is specified, use `0.0.0.0`
as the hostname instead of `localhost`.
When running on Windows and the hostname is either not specified or
it is `0.0.0.0` or `::`, use `localhost` in the URL. The reason is
that Windows cannot open URLs using `0.0.0.0` as a hostname.
2014-10-20 13:47:24 +02:00
Rand McKinney
f511bd38c9
Fix findById callback signature
2014-10-15 13:45:15 -07:00
Rand McKinney
e4118c367d
JSdoc fixes
...
Ad:
- update is alias for updateAll.
- Make callback optional for save method
2014-10-15 13:40:14 -07:00
Miroslav Bajtoš
20026a9d04
Fix places using undefined variables
...
Also enable jshint option "undefined" in order to catch these kind
of errors in the future.
2014-10-15 16:44:00 +02:00
crandmck
2f4a54d93c
Clean up jsdoc comments
...
Add class properties, expose some methods that should have
been documented, etc.
2014-10-15 09:42:24 +02:00
Miroslav Bajtoš
0906a6f5b3
models: move Change LDL def into a json file
2014-10-14 09:04:43 +02:00
Miroslav Bajtoš
6cbc231fba
models: move Checkpoint LDL def into a json file
2014-10-14 09:04:43 +02:00
Miroslav Bajtoš
461ae92c1c
models: move Role LDL def into a json file
2014-10-14 09:04:43 +02:00
Miroslav Bajtoš
e9c86163aa
models: move RoleMapping def into its own files
2014-10-14 09:04:43 +02:00
Miroslav Bajtoš
7c01d59d80
models: move ACL LDL def into a json file
2014-10-14 09:04:43 +02:00
Miroslav Bajtoš
ef890d5f26
models: move Scope def into its own files
2014-10-14 08:58:17 +02:00
Miroslav Bajtoš
5f20652241
models: move AccessToken LDL def into a json file
2014-10-14 08:58:17 +02:00
Miroslav Bajtoš
1e6beabbd2
models: move Application LDL def into a json file
...
Move some of the comments describing properties into jsdoc.
2014-10-14 08:58:17 +02:00
Miroslav Bajtoš
551d109a20
models: move Email LDL def into `email.json`
2014-10-14 08:58:17 +02:00
Miroslav Bajtoš
920d3be6a3
models: move User LDL def into `user.json`
2014-10-14 08:58:17 +02:00
Miroslav Bajtoš
df9fe90d35
Auto-load and register built-in `Checkpoint` model
2014-10-14 08:58:16 +02:00
Miroslav Bajtoš
1fe0110849
Dismantle `lib/models`.
...
- Move core models `Model` and `PersistedModel` to `lib/`.
- Move `AccessContext` class to `lib/`, since it is not a model.
- Move all other built-in models to `common/models`.
This is a preparation for extracting model definitions to JSON files.
By splitting the change into multiple commits, git is able to keep track
of file moves (renames).
2014-10-13 12:09:27 +02:00
Miroslav Bajtoš
3a0f793c9b
Register built-in models in a standalone file
...
Move the code registering built-in models to a new file
`lib/builtin-models.js`.
2014-10-13 12:09:19 +02:00
Miroslav Bajtoš
846a0b0074
models/change: fix `id` property definition
...
Remove the flag `generated:true`, as it does not work together with
a custom `setter.id` function.
2014-10-10 19:10:42 +02:00
Rand McKinney
223fa7a442
Added class properties jsdoc.
2014-10-08 17:26:45 -07:00
Rand McKinney
7aca64a660
Fixed up JS Doc
2014-10-08 15:07:03 -07:00
Rand McKinney
6de9645f45
Added class properties jsdoc.
2014-10-06 10:15:26 -07:00
Rand McKinney
8af1b96a47
Document ACL class properties
2014-10-01 17:21:22 -07:00
Rand McKinney
abdaa4a1b9
Add properties JSdoc.
2014-10-01 16:25:03 -07:00
Krishna Raman
b5516757ae
Move looback remote connector to npm module
2014-10-01 14:48:34 -07:00
Ritchie Martori
0e8c019534
Merge pull request #601 from strongloop/doc/user-props
...
Document user class properties
2014-10-01 13:38:55 -07:00
Ritchie Martori
8c452b9ded
Document user class properties
2014-10-01 10:33:36 -07:00
Ritchie Martori
712478a50c
Add Model.disableRemoteMethod()
2014-09-29 13:05:31 -07:00
Miroslav Bajtoš
aac230679f
Merge pull request #555 from strongloop/feature/include-remote-method-aliases
...
PersistedModel: add remote method aliases
2014-09-12 11:42:20 +02:00
Raymond Feng
28754519d4
Merge pull request #522 from clarkorz/feature/link-with-data
...
Support data field as body for link operation
2014-09-11 16:59:27 -07:00
Raymond Feng
1e41064a87
Merge pull request #529 from Coobaha/fix/user_include
...
user#login include server crash fix
2014-09-11 16:57:58 -07:00
Miroslav Bajtoš
06b65ccf7e
PersistedModel: add remote method aliases
...
Ensure all loopback 1.x method names are available in loopback 2.x too.
2014-09-10 17:35:02 +01:00
zxvv
4fdee0aa6d
Fix last commit, which misplaced an ACL.
...
Move the ACL inside "acls".
Signed-off-by: Carey Richard Murphey <rich@murphey.org>
2014-09-07 11:26:10 -05:00
zxvv
5255120a22
Add an ACL to User, to allow everyone to execute User.passwordReset().
...
This is intended to permit users who have forgotten their
password, and are thus unauthenticated, to request a reset.
Credit goes to John Murphy who proposed the ACL in Google Groups here:
https://groups.google.com/forum/#!searchin/loopbackjs/passwordReset$20ACL/loopbackjs/UPyhg7KS-9k/_M_9-YpUKmIJ
Signed-off-by: Carey Richard Murphey <rich@murphey.org>
2014-09-06 19:05:32 -05:00
Ritchie Martori
6a604de157
Merge pull request #510 from strongloop/fix/remoting-type-conversion
...
Fix coercion for remoting on vanilla models
2014-09-03 11:55:04 -07:00
Ritchie Martori
58e36514d6
Fix coercion for remoting on vanilla models
2014-09-03 11:33:20 -07:00
Raymond Feng
43dbfa288e
Merge pull request #469 from britztopher/mailconnector-transports-issue460
...
Mailconnector transports issue460
2014-09-03 08:50:03 -07:00
Alexander Ryzhikov
58538f02b7
user#login include server crash fix
...
Signed-off-by: Alexander Ryzhikov <coobaha@gmail.com>
2014-09-03 09:58:49 +04:00
Raymond Feng
9fb60174f9
Merge pull request #519 from fabien/fix/error-response
...
Fix embedsMany/findById to return proper 404 response
2014-09-02 22:42:40 -07:00
Rand McKinney
1af1ec2c43
Update model.js
...
Correct event docs per https://groups.google.com/forum/#!topic/loopbackjs/61qd--Xkowo :
- `deleted` event takes instance arg, not id.
- Add docs for `set` event
2014-09-02 11:11:36 -07:00
Clark Wang
4387957a45
Restrict: only hasManyThrough relation can have additional properties
...
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2014-09-01 13:55:53 +08:00
Clark Wang
0e6bba4ded
Restrict that only hasManyThrough can have additional properties
...
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2014-09-01 13:52:14 +08:00
Clark Wang
beea028d5f
Support data field as body for link operation
...
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2014-09-01 08:52:24 +08:00
Fabien Franzen
33f3ba4549
Fix embedsMany/findById to return proper 404 response
2014-08-30 16:54:14 +02:00
Raymond Feng
9b97014b52
Merge pull request #504 from fabien/feature/embeds-one-remoting
...
Enable remoting for embedsOne relation
2014-08-29 09:30:49 -07:00
Raymond Feng
e856f81d09
Merge pull request #503 from fabien/feature/scope-where
...
Allow 'where' argument for scoped count API
2014-08-29 09:30:38 -07:00
Miroslav Bajtoš
26b67ba757
registry: warn when dataSource is not specified
...
Modify `registry.configureModel()` to log a warning when `dataSource`
optiont is not specified at all.
Users should provide `dataSource: null` when the model is intentionally
not attached to any data-source.
2014-08-26 18:04:06 +02:00
Ritchie Martori
7dde6466e5
Only validate dataSource when defined ( Fixes #482 )
2014-08-26 17:49:15 +02:00
Jaka Hudoklin
19155242c1
Enable remoting for embedsOne relation
...
Signed-off-by: Jaka Hudoklin <jakahudoklin@gmail.com>
2014-08-26 15:25:45 +02:00
Fabien Franzen
fc0c96bdc2
Allow 'where' argument for scoped count API
...
Note that the return value will be non-rooted, which is actually what
the
non-scoped /count method returns as well - fixes inconsistency.
2014-08-26 14:41:36 +02:00
Fabien Franzen
6ccc5a62bf
Account for undefined before/afterListeners
2014-08-22 22:18:24 +02:00
Raymond Feng
c3a33df0ce
Make sure AccessToken extends from PersistedModel
2014-08-18 21:44:38 -07:00
Raymond Feng
e35bc9ed5f
Merge pull request #463 from offlinehacker/master
...
add count to relations and scopes
2014-08-15 13:18:51 -07:00
britztopher
ba48d042b8
added test and fixed changing passed in object within ctor
2014-08-14 15:44:36 -04:00
britztopher
d4bd2bca28
adding the ability to use single or multiple email transports in datasources.json file
2014-08-14 12:07:44 -04:00
britztopher
56fe548a46
added the ability to use an array of transports or just a single trnasport
2014-08-13 15:57:28 -04:00
Jaka Hudoklin
066e87300d
add count to relations and scopes
...
Signed-off-by: Jaka Hudoklin <jakahudoklin@gmail.com>
2014-08-12 15:03:15 +02:00
Miroslav Bajtoš
d93b6127c4
Remove `req.resume` from `app.enableAuth`
...
Remove `req.pause` and `req.resume` from `app.enableAuth`
- they are no longer needed, the request starts paused and there is
no other middleware that would resume it before us.
- when we resume the request after authentication, we force all
other async operations (like sharedCtor) to call pause & resume too,
otherwise data are lost
2014-08-12 13:57:45 +02:00
Ritchie Martori
1ed4e2b9d7
Fix accessToken property docs
2014-08-11 10:55:23 -07:00
Raymond Feng
1c61cedee7
Make sure scoped methods are remoted
...
See https://github.com/strongloop/loopback/issues/454 . It's regression in 2.x.
2014-08-08 15:55:47 -07:00
Raymond Feng
9fb0977433
Pass in remotingContext for ACL
...
See https://github.com/strongloop/loopback/issues/451
2014-08-07 22:19:27 -07:00
Raymond Feng
0e8a69015a
Fix reference to app
...
See https://github.com/strongloop/loopback/issues/452
2014-08-07 21:45:18 -07:00
Raymond Feng
b07aac7377
Merge pull request #449 from fabien/fix/polymorphic-belongs-to
...
Don't assume relation.modelTo in case of polymorphic belongsTo
2014-08-07 13:54:15 -07:00
Raymond Feng
a9e77e0e23
Merge pull request #435 from fabien/feature/deep-remoting
...
Implement Model.nestRemoting
2014-08-07 10:38:09 -07:00
Raymond Feng
ce88ce7733
Fix doc for the EXECUTE
2014-08-07 10:33:36 -07:00
Raymond Feng
0affc65c67
Merge pull request #427 from fabien/feature/relation-paths
...
Allow custom relation path (http) - enable hasOne remoting access
2014-08-07 10:32:13 -07:00
Fabien Franzen
1af95272fe
Don't assume relation.modelTo in case of polymorphic belongsTo
2014-08-07 15:39:07 +02:00
Steve Grosbois
7b94f7a139
Fix "callbacl" by "callback" in doc
2014-08-05 15:17:11 +02:00
Fabien Franzen
539702ab3d
Inherit hooks when nesting
...
Note that for now, the hook ctx.instance will be the root/entry object.
Added `mounted` event - should be useful in other ways too.
2014-08-05 12:14:39 +02:00
Fabien Franzen
18c647a9bb
Changed options.path to options.http.path
2014-08-05 09:10:43 +02:00
Fabien Franzen
cc0d376cc3
filterMethod can also be a direct callback
2014-08-04 19:08:43 +02:00
Fabien Franzen
097daf1deb
filterMethod option (fn) to filter nested remote methods
2014-08-04 19:02:30 +02:00
Fabien Franzen
9be8d11431
Implement Model.nestRemoting
...
Explicitly enable another level of nesting/accessing relations; limited
to a depth of 2 levels.
2014-08-04 18:27:50 +02:00
Raymond Feng
b66a36fd3c
Merge pull request #423 from strongloop/feature/add-remoting-for-exists
...
Feature/add remoting for exists
2014-08-04 08:44:16 -07:00
Fabien Franzen
66fe60e6ca
Allow custom relation path (http) - enable hasOne remoting access
2014-08-01 11:25:28 +02:00
Raymond Feng
ad43d03ebb
Expose Model.exists over HTTP HEAD
2014-07-30 21:57:45 -07:00
Raymond Feng
1fd562ecbd
Return data source for app.dataSource()
2014-07-30 21:57:08 -07:00
Raymond Feng
0590eaf278
Merge pull request #419 from fabien/feature/new-relations
...
Integration of the new juggler relations: embedsMany, referencesMany
2014-07-30 16:32:33 -07:00
Raymond Feng
7fe68a6ee1
Merge pull request #415 from strongloop/feature/add-remoting-for-exists
...
Map exists to HEAD for REST
2014-07-30 10:22:16 -07:00
Fabien Franzen
b9f27d71a8
Integration test: referencesMany
2014-07-30 15:01:22 +02:00
Fabien Franzen
514db0bc66
Integration test: embedsMany
2014-07-30 13:24:40 +02:00
Rand McKinney
85c68651bc
Fix jsdoc for remoteMethod()
2014-07-29 11:54:26 -07:00
Raymond Feng
e5b0e8cd70
Map exists to HEAD for REST
2014-07-28 09:37:50 -07:00
Raymond Feng
71f9dbd4b0
Merge pull request #412 from strongloop/feature/fix-issue-408
...
Build the email verification url from app context
2014-07-28 08:23:02 -07:00
Raymond Feng
d638b29f55
Fix https://github.com/strongloop/loopback/issues/413
2014-07-27 00:41:43 -07:00
Raymond Feng
567e2530d7
Build the email verification url from app context
...
https://github.com/strongloop/loopback/issues/408
2014-07-26 22:39:42 -07:00
Raymond Feng
5aee3b7f61
Merge pull request #402 from strongloop/feature/emit-model-remoted-event
...
Emit a 'modelRemoted' event by app.model()
2014-07-25 09:06:46 -07:00
Raymond Feng
af26e09845
Emit a 'modelRemoted' event by app.model()
...
This event will be listened by loopback-explorer so that models remoted
after the explorer is initiated will be added to the api specs
2014-07-24 17:00:27 -07:00
Raymond Feng
ab8d82d7f9
Fix remoting types for related models
2014-07-24 10:26:49 -07:00
Raymond Feng
ac1428eff5
Fix for email transports
2014-07-23 22:09:24 -07:00
Raymond Feng
58da6277e3
Merge pull request #390 from strongloop/feature/refactor-relation-remoting
...
Move remoting metadata from juggler to loopback
2014-07-22 11:12:53 -07:00
Raymond Feng
13c876c154
Merge pull request #387 from strongloop/feature/fix-base-model
...
Set up the base model based on the connector types
2014-07-22 10:58:33 -07:00
Raymond Feng
335bae4b46
Merge branch 'master' into feature/fix-issue-377
2014-07-22 10:49:20 -07:00
Raymond Feng
21b8609ee2
Report error for User.confirm()
...
See https://github.com/strongloop/loopback/issues/377
2014-07-22 10:42:22 -07:00
Miroslav Bajtoš
070f3d9583
Merge pull request #392 from strongloop/feature/drop-swagger
...
Remove `app.docs()`
2014-07-22 19:41:42 +02:00
Raymond Feng
643293cc25
Set up the base model based on the connector types
2014-07-22 10:38:14 -07:00
Miroslav Bajtoš
bba58a73d5
express-middleware: improve error message
...
Include the flag `--save` in the npm instructions, so that the missing
module is both installed and saved in package dependencies.
2014-07-22 15:40:36 +02:00
Miroslav Bajtoš
c7bca9da78
Remove `app.docs()`
...
The swagger integration was moved to loopback-explorer.
2014-07-22 15:08:23 +02:00
Raymond Feng
74e9ff75e3
Merge pull request #385 from offlinehacker/master
...
Validate username uniqueness
2014-07-21 15:26:01 -07:00
Raymond Feng
0dae813d5f
Merge pull request #375 from strongloop/feature/upgrade-to-nodemailer-1.x
...
Upgrade to nodemailer 1.0.1
2014-07-21 11:58:17 -07:00
Miroslav Bajtoš
eb5ef04b6a
Remove `loopback.compat.usePluralNamesForRemoting`
...
The `usePluralNamesForRemoting` was added in January 2014 for users
upgrading from LoopBack 1.5 or older.
2014-07-21 16:56:46 +02:00
Jaka Hudoklin
90094e5e86
Validate username uniqueness
...
Signed-off-by: Jaka Hudoklin <jakahudoklin@gmail.com>
2014-07-19 14:18:21 +02:00
Raymond Feng
4f7a9869e0
Add descriptions for custom methods on user model
2014-07-18 22:48:07 -07:00
Raymond Feng
30c35ca5ef
Move remoting metadata from juggler to loopback
2014-07-16 16:35:43 -07:00
Raymond Feng
e5b64c6143
Upgrade to nodemailer 1.0.1
2014-07-16 12:40:15 -07:00
Raymond Feng
4e1d8c9a4e
Merge branch '1.x' into 2.0
2014-07-16 11:06:24 -07:00
Raymond Feng
a28e5b5897
Enhance the error message
2014-07-16 11:04:23 -07:00
Raymond Feng
79f504a3c7
Merge branch 'master' into 2.0
2014-07-16 09:09:07 -07:00
Raymond Feng
c5c28aa634
Merge pull request #368 from strongloop/feature/loopback-base-model
...
Refactor modelBuilder to registry and set up default model
2014-07-15 08:38:43 -07:00
Raymond Feng
3c13ce5a8f
Refactor modelBuilder to registry and set up default model
2014-07-15 08:37:59 -07:00
Miroslav Bajtoš
da9b724222
lib/application: publish Change models to REST API
...
When a public model is added to an application and the model has change
tracking enabled, its Change model is added to the public models.
Before this change, conflict resolution in the browser was not working,
because it was not possible to fetch the remote change.
2014-07-15 09:31:16 +02:00
Miroslav Bajtoš
087c602669
models/change: fix typo
2014-07-15 09:14:54 +02:00
Raymond Feng
22e929e439
Fix credentials/challenges types
...
Associated identities and credentials are now captured by models in
loopback-component-passport. These two properties will be removed in
2.x.
2014-07-14 14:22:21 -07:00
crandmck
b5c47dc7a5
Split out aliases for deleteById and destroyAll functions for jsdoc.
2014-07-11 15:41:14 -07:00
Miroslav Bajtoš
31ef6394b4
checkpoint: fix `current()`
...
Fix the query in `Checkpoint.current()` to correctly specify sorting
`seq DESC`. Before this change, the first checkpoint was returned as the
current one.
2014-07-11 17:07:22 +02:00
Raymond Feng
de831dbd33
Fix the typo
2014-07-08 08:54:13 -07:00
Raymond Feng
0c67b1e781
Add an option to honor emailVerified
...
See https://github.com/strongloop/loopback/pull/215
2014-07-07 14:09:45 -07:00
Raymond Feng
217c9fa348
Fix the typo and add Bearer token support
...
See https://github.com/strongloop/loopback/issues/333
2014-07-02 09:02:13 -07:00
Aleksandr Tsertkov
476dd8214d
Fix misleading token middleware documentation
...
Signed-off-by: Aleksandr Tsertkov <tsertkov@gmail.com>
2014-07-01 16:59:49 +02:00
Miroslav Bajtoš
8ea11ea955
Merge branch 'master' into 2.0
...
Land the pull request #357
> app: update `url` on `listening` event
2014-07-01 16:18:00 +02:00
Miroslav Bajtoš
dfa8d7f49f
app: update `url` on `listening` event
...
Most applications report the URL when started (at least the apps we
are scaffolding using loopback-workspace). Constructing the URL in the
loopback core allows us to simplify the templates and reduce the amount
of repeated code.
2014-07-01 14:27:02 +02:00
Miroslav Bajtoš
10d29c7d86
Merge branch 'master' into 2.0
...
Conflicts:
package.json
2014-06-27 10:36:06 +02:00
Miroslav Bajtoš
45d026e7de
Merge pull request #335 from karlmikko/bug/invalid-token-unhandled
...
Ignore unhanded error - simulate token missing
2014-06-27 09:56:17 +02:00
Guilherme Cirne
3fba6c50f0
Fix "ReferenceError: loopback is not defined" in registry.memory().
...
Signed-off-by: Guilherme Cirne <gcirne@gmail.com>
2014-06-26 10:40:28 -03:00
Miroslav Bajtoš
50816ebbe3
Fix loopback in PhantomJS, fix karma tests
...
- Move configuration of Karma unit-tests from `Gruntfile.js` to a
standalone file (`test/karma.conf.js`).
- Add a new Grunt task `karma:unit-ci` to run Karma unit-tests in
PhantomJS and produce karma-xunit.xml file that can be consumed
by the CI server.
- Add grunt-mocha-test, configure it to run unit-tests.
- Add `grunt test` task that runs both karma and mocha tests,
detects Jenkins to produce XML output on CI server.
- Modify the `test` script in `package.json` to run
`grunt mocha-and-karma` (an alias for `grunt test`).
The alias is required to trick `sl-ci-run` to run `npm test`
instead of calling directly `mocha`.
- Add `es5-shim` module to karma unit-tests in order to provide
ES5-methods required by LoopBack.
- Fix `mixin(source)` in lib/loopback.js to work in PhantomJS.
`Object.getOwnPropertyDescriptor()` provided by `es5-shim` does not
work in the same way as in Node.
2014-06-26 13:30:09 +02:00
Karl Mikkelsen
46af483bdd
Invalid Access Token return 401
...
Clean up logic to be easier to read.
Signed-off-by: Karl Mikkelsen <karl@karlmikko.com>
2014-06-26 08:50:41 +10:00
Raymond Feng
70c1cb5ce0
Update debug setting
2014-06-25 09:09:04 -07:00
Miroslav Bajtoš
c896c78db0
Remove `app.boot`
...
Modify `app.boot` to throw an exception, pointing users to the new
module `loopback-boot`.
2014-06-25 14:09:06 +02:00
Miroslav Bajtoš
70615696cd
Mark `app.boot` as deprecated.
2014-06-25 13:44:07 +02:00
Raymond Feng
9eab7d62d3
Merge branch 'master' into 2.0
2014-06-20 23:48:46 -07:00
Raymond Feng
b44dac3c62
Merge branch 'master' into 2.0
2014-06-20 23:08:35 -07:00
Samuel Reed
afd8de0c31
Fix a slowdown caused by mutation of an incoming accessToken option.
2014-06-20 16:39:28 -05:00
Raymond Feng
d5ed57e60d
Merge pull request #254 from strongloop/feature/role-id
...
Set the role id to be generated
2014-06-17 10:37:06 -07:00
Miroslav Bajtoš
7316048afc
lib/registry: `getModel` throws, add `findModel`
...
Rename `loopback.getModel` to `loopback.findModel`.
Implement `loopback.getModel` as a wrapper around `findModel` that
throws an error when the model as not found.
2014-06-16 16:13:24 +02:00
Miroslav Bajtoš
56c7a6b3c5
Merge branch 'master' into 2.0
...
Conflicts:
test/access-token.test.js
2014-06-16 10:20:22 +02:00
Miroslav Bajtoš
843e09342c
lib/application: Remove forgotten `loopback` ref
...
Use `registry.Model` instead of `loopback.Model`.
2014-06-16 09:52:11 +02:00
Miroslav Bajtoš
8826b6396a
Merge pull request #306 from karlmikko/master
...
Ability to return 401 and 403 response codes #301
2014-06-14 09:44:22 +02:00
Miroslav Bajtoš
d2517d8236
Merge branch 'master' into 2.0
2014-06-14 09:40:57 +02:00
Karl Mikkelsen
a90a5c7e58
Allow customization of ACL http status
...
emulate existing error on 404
new tests for model and app settings
Signed-off-by: Karl Mikkelsen <karl@karlmikko.com>
2014-06-14 11:31:15 +10:00
Miroslav Bajtoš
c4db83ad43
Expose loopback as `app.loopback`
...
The primary intention is to allow loopback plugins to determine
the version of the loopback framework from the `app` object.
2014-06-13 10:34:51 +02:00
Miroslav Bajtoš
d21669b844
Merge branch 'master' into 2.0
...
Conflicts:
docs.json
lib/application.js
lib/loopback.js
lib/models/data-model.js
lib/models/model.js
lib/models/user.js
lib/registry.js
package.json
test/app.test.js
2014-06-13 10:09:25 +02:00
Miroslav Bajtoš
02d1c5e3c2
registry: export DataSource class
...
Expose the juggler's DataSource constructor as `loopback.DataSource`.
The DataSource constructor is most useful to check
for `instanceof DataSource`, but it also makes the loopback API more
consistent, since the API is already exposing all pre-built Models.
2014-06-12 10:41:45 +02:00
Miroslav Bajtoš
f05291ca93
registry: fix non-unique default dataSources
...
Fix the problem where `registry.defaultDataSources` has two instances:
- `require('loopback').defaultDataSources` used by
`loopback.autoAttach()`
- `require('./registry').defaultDataSources` used by
`app.dataSource`.
I am intentionally leaving out unit-tests as the whole `autoAttach`
feature is going to be deleted before 2.0 is released.
2014-06-12 10:41:45 +02:00
Miroslav Bajtoš
362cceb70a
Merge createModelFromConfig with createModel
...
Merge the two methods `loopback.createModel` and
`loopback.createModelFromConfig` into a single method `createModel`.
2014-06-12 10:41:45 +02:00
Miroslav Bajtoš
7cd6e09790
lib/registry fix jsdoc comments
...
Add missing names.
2014-06-12 10:41:44 +02:00
Miroslav Bajtoš
7d674779e1
refactor: extract runtime and registry
...
Move isBrowser and isServer from lib/loopback to a new file lib/runtime.
Move all Model and DataSource related methods like `createModel` and
`createDataSource` to lib/registry.
Remove the circular dependency between lib/application and lib/loopback,
by loading lib/registry and/or lib/runtime instead of lib/loopback
where appropriate
This commit is only moving the code around, the functionality should
not be changed at all.
2014-06-12 10:41:44 +02:00
Miroslav Bajtoš
19425b8fd9
Remove assertIsModel and isDataSource
...
Use `instanceof` operator instead:
ModelCtor.prototype instanceof loopback.Model
dataSource instanceof loopback.DataSource
2014-06-12 10:41:44 +02:00
Miroslav Bajtoš
fc0fad4a9f
Add createModelFromConfig and configureModel()
...
Add new API allowing developers to split the model definition and
configuration into two steps:
1. Build models from JSON config, export them for re-use:
```js
var Customer = loopback.createModelFromConfig({
name: 'Customer',
base: 'User',
properties: {
address: 'string'
}
});
```
2. Attach existing models to a dataSource and a loopback app,
modify certain model aspects like relations:
```js
loopback.configureModel(Customer, {
dataSource: db,
relations: { /* ... */ }
});
```
Rework `app.model` to use `loopback.configureModel` under the hood.
Here is the new usage:
```js
var Customer = require('./models').Customer;
app.model(Customer, {
dataSource: 'db',
relations: { /* ... */ }
});
```
In order to preserve backwards compatibility,
`app.model(name, config)` calls both `createModelFromConfig`
and `configureModel`.
2014-06-12 10:41:44 +02:00
Miroslav Bajtoš
4259a3862a
Make app.get/app.set available in browser
...
Implement settings object and methods in browser-express.
2014-06-12 10:40:36 +02:00
crandmck
ad347e517c
JSDoc fixes
2014-06-11 14:55:47 -07:00
Raymond Feng
6490447fac
Set the role id to be generated
...
See https://github.com/strongloop/loopback-connector-postgresql/issues/5
2014-06-10 16:38:37 -07:00
Miroslav Bajtoš
b576639d90
Add loopback.version back
...
Add `loopback.version` that was accidentaly removed by #308 .
2014-06-10 11:19:36 +02:00
Raymond Feng
7769174d58
Tidy up app.model() to remove duplicate & recusrive call
2014-06-09 23:53:01 -07:00
Raymond Feng
815ad53aa4
Register existing model to app.models during app.model()
2014-06-09 16:31:33 -07:00