UNPKG

@megawubs/avid

Version:

API consumption on fire, inspired by Laravel's Eloquent

32 lines (27 loc) 967 B
import {Api} from "../api"; import {map} from "../map"; export class HasMany { constructor(relation, resource, parent, params = null) { let self = this; self.relation = relation; self.resource = resource; self.parent = parent; self.params = params; self.api = new Api(self.parent._resource); } then(callback) { let self = this; if (self.parent.properties.hasOwnProperty(self.resource.toLowerCase())) { return map(self.relation, self.parent.properties[self.resource.toLowerCase()]).then(callback); } return self.api.relation(self.parent, self.relation, self.resource, self.params) .then(response => map(self.relation, response)) .then(callback); } add(entity) { let self = this; let relation = [self.parent._name, "id"].join('_'); entity[relation] = self.parent.id; return entity.save(); } }