Methods
# abstract static isAdapterFor(rawResource) → {Boolean}
Checks if given adapter supports resource provided by the user
Parameters:
Name | Type | Description |
---|---|---|
rawResource |
any | resource provided in AdminBroOptions#resources array |
if given adapter supports this resource - returns true
# assignDecorator(Decorator, admin, optionsopt)
Assigns given decorator to the Resource. Than it will be available under resource.decorate() method
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
Decorator |
BaseDecorator | ||
admin |
AdminBro | current instance of AdminBro |
|
options |
ResourceOptions |
<optional> |
# build(params) → {BaseRecord}
Builds new Record of given Resource.
Each Record is an representation of the resource item. Before it can be saved, it has to be instantiated.
Parameters:
Name | Type | Description |
---|---|---|
params |
Record.<string, any> |
# async abstract count(filter) → {Promise.<Number>}
Returns number of elements for given resource by including filters
Parameters:
Name | Type | Description |
---|---|---|
filter |
Filter | represents what data should be included |
# async abstract create(params) → {Promise.<Object>}
Creates new record
Parameters:
Name | Type | Description |
---|---|---|
params |
Record.<string, any> |
If there are validation errors it should be thrown
created record converted to raw Object which can be used to initiate new BaseRecord instance
# abstract databaseName() → {String}
The name of the database to which resource belongs. When resource is a mongoose model it should be database name of the mongo database.
Visually, by default, all resources are nested in sidebar under their database names.
database name
# databaseType() → {String}
Returns type of the database. It is used to compute sidebar icon for given resource. Default: 'database'
# async abstract delete(id)
Delete given record by id
Parameters:
Name | Type | Description |
---|---|---|
id |
String | Number | id of the Record |
If there are validation errors it should be thrown
# async abstract find(filters, options) → {Promise.<Array.<BaseRecord>>}
Returns actual records for given resource
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
filters |
Filter | what data should be included |
|
options |
Object | ||
limit |
Number |
<optional> |
how many records should be taken |
offset |
Number |
<optional> |
offset |
sort |
Object |
<optional> |
sort |
sort.sortBy |
Number |
<optional> |
sortable field |
sort.direction |
Number |
<optional> |
either asc or desc |
list of records
Example
// filters example
{
name: 'Tom',
createdAt: { from: '2019-01-01', to: '2019-01-18' }
}
# async findMany(list) → {Promise.<Array.<BaseRecord>>}
Finds many records based on the resource ids
Parameters:
Name | Type | Description |
---|---|---|
list |
Array.<string> | of ids to find |
records
# async abstract findOne(id) → {Promise.<BaseRecord>}
Finds one Record in the Resource by its id
Parameters:
Name | Type | Description |
---|---|---|
id |
String | uniq id of the Resource Record |
record
# abstract id() → {String}
Each resource has to have uniq id which will be put to an URL of AdminBro routes.
For instance in Router path for the new
form is /resources/{resourceId}/new
uniq resource id
# abstract name() → {String}
Return name of the resource. It could be a table name in SQL database, or collection name in mongoDB.
Visually it will be shown as the name of the resource in the UI.
# async populate(records, property) → {Promise.<Array.<BaseRecord>>}
Populates records with references for given property.
Example: Let say resource Article
has property user_id
and it is a reference
to User
resource. When you call this User.populate([...articleRecords], userIdProperty)
it should populate articleRecords
with corresponding users.
So after that invoking articleRecord.populated['user_id']
will return the user Record
Parameters:
Name | Type | Description |
---|---|---|
records |
Array.<BaseRecord> | all records which should be populated |
property |
BaseProperty | property which is a reference to |
populated records
# abstract properties() → {Array.<BaseProperty>}
returns array of all properties which belongs to resource
# abstract property(path) → {BaseProperty}
returns property object for given field
Parameters:
Name | Type | Description |
---|---|---|
path |
String | path/name of the property. Take a look at BaseProperty to learn more about property paths. |
# async abstract update(id, params) → {Promise.<Object>}
Updates an object
Parameters:
Name | Type | Description |
---|---|---|
id |
String | uniq id of the Resource Record |
params |
Record.<string, any> |
If there are validation errors it should be thrown
created record converted to raw Object which can be used to initiate new BaseRecord instance