Class BuildURLMixin
public| Defined in: | ../packages/adapter/addon/-private/build-url-mixin.ts:121 |
|---|---|
| Module: | @ember-data/adapter |
buildURL (modelName, id, snapshot, requestType, query) String public
| Module: | @ember-data/adapter |
|---|
Defined in ../packages/adapter/addon/-private/build-url-mixin.ts:147
- modelName
- String
- id
- (String|Array|Object)
- single id or array of ids or query
- snapshot
- (Snapshot|SnapshotRecordArray)
- single snapshot or array of snapshots
- requestType
- String
- query
- Object
- object of query parameters to send for query requests.
- returns
- String
- url
Builds a URL for a given type and optional ID.
By default, it pluralizes the type's name (for example, 'post' becomes 'posts' and 'person' becomes 'people'). To override the pluralization see pathForType.
If an ID is specified, it adds the ID to the path generated for the type, separated by a /.
When called by RESTAdapter.findMany() the id and snapshot parameters will be arrays of ids and snapshots.
pathForType (modelName) String public
| Module: | @ember-data/adapter |
|---|
Defined in ../packages/adapter/addon/-private/build-url-mixin.ts:645
- modelName
- String
- returns
- String
- path
Determines the pathname for a given type.
By default, it pluralizes the type's name (for example, 'post' becomes 'posts' and 'person' becomes 'people').
Pathname customization
For example, if you have an object LineItem with an endpoint of /line_items/.
app/adapters/application.jsimport RESTAdapter from '@ember-data/adapter/rest';
import { decamelize, pluralize } from '<app-name>/utils/string-utils';
export default class ApplicationAdapter extends RESTAdapter {
pathForType(modelName) {
var decamelized = decamelize(modelName);
return pluralize(decamelized);
}
} urlForCreateRecord (modelName, snapshot) String public
| Module: | @ember-data/adapter |
|---|
Defined in ../packages/adapter/addon/-private/build-url-mixin.ts:527
- modelName
- String
- snapshot
- Snapshot
- returns
- String
- url
Builds a URL for a record.save() call when the record was created locally using store.createRecord().
Example:
app/adapters/application.jsimport RESTAdapter from '@ember-data/adapter/rest';
export default class ApplicationAdapter extends RESTAdapter {
urlForCreateRecord(modelName, snapshot) {
return super.urlForCreateRecord(...arguments) + '/new';
}
} urlForDeleteRecord (id, modelName, snapshot) String public
| Module: | @ember-data/adapter |
|---|
Defined in ../packages/adapter/addon/-private/build-url-mixin.ts:579
- id
- String
- modelName
- String
- snapshot
- Snapshot
- returns
- String
- url
Builds a URL for a record.save() call when the record has been deleted locally.
Example:
app/adapters/application.jsimport RESTAdapter from '@ember-data/adapter/rest';
export default class ApplicationAdapter extends RESTAdapter {
urlForDeleteRecord(id, modelName, snapshot) {
return super.urlForDeleteRecord(...arguments) + '/destroy';
}
} urlForFindAll (modelName, snapshot) String public
| Module: | @ember-data/adapter |
|---|
Defined in ../packages/adapter/addon/-private/build-url-mixin.ts:359
- modelName
- String
- snapshot
- SnapshotRecordArray
- returns
- String
- url
Builds a URL for a store.findAll(type) call.
Example:
app/adapters/comment.jsimport JSONAPIAdapter from '@ember-data/adapter/json-api';
export default class ApplicationAdapter extends JSONAPIAdapter {
urlForFindAll(modelName, snapshot) {
let baseUrl = this.buildURL(modelName);
return `${baseUrl}/data/comments.json`;
}
} urlForFindBelongsTo (id, modelName, snapshot) String public
| Module: | @ember-data/adapter |
|---|
Defined in ../packages/adapter/addon/-private/build-url-mixin.ts:499
- id
- String
- modelName
- String
- snapshot
- Snapshot
- returns
- String
- url
Builds a URL for fetching an async belongsTo relationship when a url is not provided by the server.
Example:
app/adapters/application.jsimport JSONAPIAdapter from '@ember-data/adapter/json-api';
export default class ApplicationAdapter extends JSONAPIAdapter {
urlForFindBelongsTo(id, modelName, snapshot) {
let baseUrl = this.buildURL(modelName, id);
return `${baseUrl}/relationships`;
}
} urlForFindHasMany (id, modelName, snapshot) String public
| Module: | @ember-data/adapter |
|---|
Defined in ../packages/adapter/addon/-private/build-url-mixin.ts:471
- id
- String
- modelName
- String
- snapshot
- Snapshot
- returns
- String
- url
Builds a URL for fetching an async hasMany relationship when a URL is not provided by the server.
Example:
app/adapters/application.jsimport JSONAPIAdapter from '@ember-data/adapter/json-api';
export default class ApplicationAdapter extends JSONAPIAdapter {
urlForFindHasMany(id, modelName, snapshot) {
let baseUrl = this.buildURL(modelName, id);
return `${baseUrl}/relationships`;
}
} urlForFindMany (ids, modelName, snapshots) String public
| Module: | @ember-data/adapter |
|---|
Defined in ../packages/adapter/addon/-private/build-url-mixin.ts:442
- ids
- Array
- modelName
- String
- snapshots
- Array
- returns
- String
- url
Builds a URL for coalescing multiple store.findRecord(type, id) records into 1 request when the adapter's coalesceFindRequests property is true.
Example:
app/adapters/application.jsimport RESTAdapter from '@ember-data/adapter/rest';
export default class ApplicationAdapter extends RESTAdapter {
urlForFindMany(ids, modelName) {
let baseUrl = this.buildURL();
return `${baseUrl}/coalesce`;
}
} urlForFindRecord (id, modelName, snapshot) String public
| Module: | @ember-data/adapter |
|---|
Defined in ../packages/adapter/addon/-private/build-url-mixin.ts:331
- id
- String
- modelName
- String
- snapshot
- Snapshot
- returns
- String
- url
Builds a URL for a store.findRecord(type, id) call.
Example:
app/adapters/user.jsimport JSONAPIAdapter from '@ember-data/adapter/json-api';
export default class ApplicationAdapter extends JSONAPIAdapter {
urlForFindRecord(id, modelName, snapshot) {
let baseUrl = this.buildURL(modelName, id, snapshot);
return `${baseUrl}/users/${snapshot.adapterOptions.user_id}/playlists/${id}`;
}
} urlForQuery (query, modelName) String public
| Module: | @ember-data/adapter |
|---|
Defined in ../packages/adapter/addon/-private/build-url-mixin.ts:385
- query
- Object
- modelName
- String
- returns
- String
- url
Builds a URL for a store.query(type, query) call.
Example:
app/adapters/application.jsimport RESTAdapter from '@ember-data/adapter/rest';
export default class ApplicationAdapter extends RESTAdapter {
host = 'https://api.github.com';
urlForQuery (query, modelName) {
switch(modelName) {
case 'repo':
return `https://api.github.com/orgs/${query.orgId}/repos`;
default:
return super.urlForQuery(...arguments);
}
}
} urlForQueryRecord (query, modelName) String public
| Module: | @ember-data/adapter |
|---|
Defined in ../packages/adapter/addon/-private/build-url-mixin.ts:416
- query
- Object
- modelName
- String
- returns
- String
- url
Builds a URL for a store.queryRecord(type, query) call.
Example:
app/adapters/application.jsimport RESTAdapter from '@ember-data/adapter/rest';
export default class ApplicationAdapter extends RESTAdapter {
urlForQueryRecord({ slug }, modelName) {
let baseUrl = this.buildURL();
return `${baseUrl}/${encodeURIComponent(slug)}`;
}
} urlForUpdateRecord (id, modelName, snapshot) String public
| Module: | @ember-data/adapter |
|---|
Defined in ../packages/adapter/addon/-private/build-url-mixin.ts:553
- id
- String
- modelName
- String
- snapshot
- Snapshot
- returns
- String
- url
Builds a URL for a record.save() call when the record has been updated locally.
Example:
app/adapters/application.jsimport RESTAdapter from '@ember-data/adapter/rest';
export default class ApplicationAdapter extends RESTAdapter {
urlForUpdateRecord(id, modelName, snapshot) {
return `/${id}/feed?access_token=${snapshot.adapterOptions.token}`;
}
}