UNPKG

@harishreddym/baqend

Version:

Baqend JavaScript SDK

45 lines (37 loc) 1.13 kB
'use strict'; const PartialUpdateBuilder = require('./PartialUpdateBuilder'); const Metadata = require('../util/Metadata'); const deprecated = require('../util/deprecated'); const message = require('../message'); /** * @alias partialupdate.EntityPartialUpdateBuilder<T> * @extends partialupdate.PartialUpdateBuilder<T> */ class EntityPartialUpdateBuilder extends PartialUpdateBuilder { /** * @param {binding.Entity} entity * @param {json} operations */ constructor(entity, operations) { super(operations); /** @type {binding.Entity} */ this.entity = entity; } /** * @inheritDoc */ execute() { const state = Metadata.get(this.entity); const body = JSON.stringify(this); const msg = new message.UpdatePartially(state.bucket, state.key, body); return state.withLock(() => ( state.db.send(msg).then((response) => { // Update the entity’s values state.setJson(response.entity, true); return this.entity; }) )); } } deprecated(PartialUpdateBuilder.prototype, '_entity', 'entity'); module.exports = EntityPartialUpdateBuilder;