All files / platform/modules/salon/src/Services ThirdPartyService.js

72.22% Statements 13/18
62.5% Branches 5/8
80% Functions 4/5
70.59% Lines 12/17

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    1x       19x       19x                         3x       3x     3x       4x 3x 3x 1x     2x       1x  
'use strict';
 
const CE = use('C2C/Exceptions');
 
class SalonService {
  static get inject() {
    return ['C2C/Repositories/ThirdPartyRepo'];
  }
 
  constructor(thirdPartyRepo) {
    this.thirdPartyRepo = thirdPartyRepo;
  }
 
  async findByCodeOrFail(code) {
    const row = await this.thirdPartyRepo.findOne({ code });
    if (!row) {
      throw CE.NotFoundException.raise('errors.notFound');
    }
 
    return row;
  }
 
  async findThirdPartyStaff({ salon, thirdParty, sourceId }) {
    const row = await this.thirdPartyRepo.findThirdPartyStaff(thirdParty, {
      salonId: salon.id,
      sourceId,
    });
    Iif (!row) {
      throw CE.NotFoundException.raise('errors.notFound');
    }
    return row;
  }
 
  async checkThirdPartyToken(thirdParty, token) {
    if (!token) return true;
    const existsConnectionByToken = await thirdParty.salons().wherePivot('token', token).first();
    if (existsConnectionByToken) {
      throw CE.BadRequestException.raise('errors.duplicateToken');
    }
 
    return true;
  }
}
 
module.exports = SalonService;