All files / src/repositories fleet.view.repository.ts

43.75% Statements 7/16
0% Branches 0/9
0% Functions 0/2
35.71% Lines 5/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 651x 1x 1x 1x       1x                                                                                                                  
import {inject} from '@loopback/core';
import {LogChainDataSource} from '../datasources';
import {BaseCrudRepository} from './base-crud.repository.base';
import {FleetView, FleetViewRelations} from '@logchain/models/views';
import {AnyObject} from '@loopback/repository';
import {FleetViewDto} from '@logchain/dtos';
 
export class FleetViewRepository extends BaseCrudRepository<
  FleetView,
  typeof FleetView.prototype.id,
  FleetViewRelations
> {
  constructor(@inject('datasources.logchain') dataSource: LogChainDataSource) {
    super(FleetView, dataSource);
  }
 
  /**
   * Override update for view
   * @param step_id The id of flows_journey_point
   * @param payload The entity
   * @param options The options
   */
  async updateById(
    step_id: typeof FleetView.prototype.id,
    payload: Partial<FleetViewDto>,
    options: AnyObject = {},
  ): Promise<void> {
    if (payload.reason_for_change) {
      await this.execute(`UPDATE flows_journey_point SET reason_for_change=$1 WHERE id=$2`, [
        payload.reason_for_change,
        step_id
      ]);
    }
    // Update vehicle_no
    if (payload.vehicle_no) {
      await this.execute(`UPDATE flows_action 
      SET form_data = form_data || jsonb_build_object('vehicle_no',$1::text) 
      WHERE flow_journey_point_id=$2 AND form_data->>'vehicle_no' IS NOT NULL`, [
        payload.vehicle_no,
        step_id
      ]);
    }
 
    // Update delivered_by
    if (payload.delivered_by) {
      await this.execute(`UPDATE flows_action 
      SET form_data = form_data || jsonb_build_object('delivered_by',$1::text) 
      WHERE flow_journey_point_id=$2 AND form_data->>'delivered_by' IS NOT NULL`, [
        payload.delivered_by,
        step_id
      ]);
    }
 
    // Update delivery_note
    if (typeof(payload.delivery_note) !== undefined) {
      await this.execute(`UPDATE flows_action 
      SET form_data = form_data || jsonb_build_object('delivery_note',$1::text) 
      WHERE flow_journey_point_id=$2 AND form_data->>'delivery_note' IS NOT NULL`, [
        payload.delivery_note,
        step_id
      ]);
    }
  }
}