Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
CustomerRestoreService
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 1
 restore
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3namespace Domain\Customer\Services;
4
5use App\Events\ServiceProcessed;
6use App\Models\Customer\Customer;
7use App\Models\User;
8use Illuminate\Support\Facades\DB;
9use Throwable;
10
11readonly class CustomerRestoreService
12{
13    /**
14     * @param Customer $customer
15     * @param User $user
16     * @return void
17     * @throws Throwable
18     */
19    public function restore(Customer $customer, User $user): void
20    {
21        try {
22            DB::beginTransaction();
23
24            $customer->restore();
25
26            DB::commit();
27        } catch (Throwable $exception) {
28            DB::rollBack();
29            throw $exception;
30        }
31
32        ServiceProcessed::dispatch(self::class, $user);
33    }
34}