FindByIdOperation.js 600 B

12345678910111213141516171819202122232425262728
  1. const QueryBuilderOperation = require('./QueryBuilderOperation');
  2. class FindByIdOperation extends QueryBuilderOperation {
  3. constructor(name, opt) {
  4. super(name, opt);
  5. this.id = null;
  6. }
  7. onAdd(builder, args) {
  8. this.id = args[0];
  9. return super.onAdd(builder, args);
  10. }
  11. onBuild(builder) {
  12. const idColumn = builder.fullIdColumnFor(builder.modelClass());
  13. builder.whereComposite(idColumn, this.id);
  14. }
  15. onAfter3(builder, result) {
  16. if (Array.isArray(result)) {
  17. return result[0];
  18. } else {
  19. return result;
  20. }
  21. }
  22. }
  23. module.exports = FindByIdOperation;