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