All files / platform/modules/third-party/src/Services ThirdPartyService.js

100% Statements 13/13
100% Branches 3/3
100% Functions 7/7
100% Lines 13/13

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    1x       11x             11x 11x       2x 2x 1x   1x       4x       4x       7x       4x       1x  
'use strict';
 
const CE = use('C2C/Exceptions');
 
class ThirdPartyService {
  static get inject() {
    return [
      'C2C/Repositories/ThirdPartyStaffRepo',
      'C2C/Repositories/StaffThirdPartyConnectionRepo',
    ];
  }
 
  constructor(thirdPartyStaffRepo, staffThirdPartyConnectionRepo) {
    this.thirdPartyStaffRepo = thirdPartyStaffRepo;
    this.staffThirdPartyConnectionRepo = staffThirdPartyConnectionRepo;
  }
 
  async findStaffByThirdPartyId(thirdParty, sourceId) {
    const row = await thirdParty.staff().wherePivot('sourceId', sourceId).first();
    if (!row) {
      throw CE.NotFoundException.raise('errors.notFound');
    }
    return row;
  }
 
  async deleteAllSourceStaff(conditions) {
    return await this.thirdPartyStaffRepo.deleteMany(conditions);
  }
 
  async createManySourceStaff(payload) {
    return await this.thirdPartyStaffRepo.insert(payload);
  }
 
  async getListSourceStaff(conditions, query = {}) {
    return await this.thirdPartyStaffRepo.find(conditions, query.sort);
  }
 
  async deleteStaffThirdPartyConnectionBy(conditions) {
    return await this.staffThirdPartyConnectionRepo.deleteMany(conditions);
  }
}
 
module.exports = ThirdPartyService;