Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
OriginResolveIdService
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 1
 resolveOriginId
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2
3namespace Domain\Category\Services;
4
5use Illuminate\Support\Facades\Cache;
6
7use App\Models\Category\Origin;
8
9use Domain\Integration\Exceptions\IntegrationNotFoundException;
10use Domain\Shared\Integrations\Senior\Exceptions\IntegrationSoapSeniorException;
11
12class OriginResolveIdService
13{
14    public static function resolveOriginId(string $codori, string $codemp): int
15    {
16        $origins = Cache::remember('job-origins', 300, function () {
17            return Origin::with(['integration'])->get()->toArray();
18        });
19
20        $origin = array_filter($origins, function ($origin) use ($codori, $codemp) {
21            if (!isset($origin['integration'])) {
22                throw new IntegrationNotFoundException(
23                  __("Non-localized integration for origin")
24                );
25            }
26
27            return $origin['integration']['parameters']['integration_code']    == $codori
28                && $origin['integration']['parameters']['integration_company'] == $codemp;
29        });
30
31        if (empty($origin)) {
32            throw new IntegrationSoapSeniorException(
33              __("Origin :origin not found!", ["origin" => $codori])
34            );
35        }
36
37        return array_values($origin)[0]['id'];
38    }
39}