-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
i.e. mongo
- add connector to model manager with model manager.models
- db connector
-
definemethod creates the schema (attrs) -
defineClassMethodsanddefineInstanceMethodswrap various ways to define methods on a model (.e.g. native class/instance methods for sequelize,methodsandstaticsfor mongoose - model operation methods (create, find, etc) need to be wrapped for each connector and return a promise
- createRecord
- actions: build(payload), validate(), save()
- arguments:
- modelName(String) lowercase model name
- payload(Object)
- destroyRecord
- actions: findOne(modelName, id), destroy()
- arguments:
- modelName(String) lowercase model name
- id(String|Int|ObjectId) primary key for the model
- findAll
- actions: findAll(query, options)
- arguments:
- query(Object)
- options(Object)
- findOne
- actions: queryRecord(modelName, { id })
- arguments:
- id(String|Int|ObjectId) primary key for the model
- queryRecord, returns a single record
- actions: queryRecord(modelName, query)
- arguments:
- where(Object)
- options(Object)
- updateRecord
- actions: queryRecord
- arguments:
- where(Object)
- options(Object)
- createRecord
-
store
export class Store extends ParchORM {
createRecord(modelName, payload) {
return this.connector.createRecord(modelName, payload);
}
destroyRecord(modelName, id, options) {
const record = await this.connector.findOne(modelName, id);
return record.destroy();
}
findAll(modelName, query, options) {
return this.connector.findAll(modelName, query, options);
}
findOne(modelName, id, options) {
return this.connector.findOne(modelName, id);
}
queryRecord(modelName, query, options) {
return this.connector.queryRecord(modelName, query, options);
}
updateRecord(modelName, updates, options) {
const record = this.connector.updateRecord(modelName, query, options);
return record.update(updates);
}
}Metadata
Metadata
Assignees
Labels
No labels