input('name') != '') { $data = [ 'account_id' => Auth::user()->account_id, 'author_id' => Auth::id(), 'vault_id' => $vaultId, 'group_type_id' => $request->input('group_type_id'), 'name' => $request->input('name'), ]; $group = (new CreateGroup)->execute($data); $groupId = $group->id; } $data = [ 'account_id' => Auth::user()->account_id, 'author_id' => Auth::id(), 'vault_id' => $vaultId, 'contact_id' => $contactId, 'group_id' => $request->input('group_id') != 0 ? $request->input('group_id') : $groupId, 'group_type_role_id' => $request->input('group_type_role_id') ?? null, ]; AddContactToGroup::dispatchSync($data); $contact = Contact::find($contactId); $group = Group::find($data['group_id']); return response()->json([ 'data' => ModuleGroupsViewHelper::dto($contact, $group, true), ], 201); } public function destroy(Request $request, string $vaultId, string $contactId, int $groupId) { $data = [ 'account_id' => Auth::user()->account_id, 'author_id' => Auth::id(), 'vault_id' => $vaultId, 'contact_id' => $contactId, 'group_id' => $groupId, ]; RemoveContactFromGroup::dispatch($data)->onQueue('high'); $contact = Contact::find($contactId); $group = Group::find($groupId); return response()->json([ 'data' => ModuleGroupsViewHelper::dto($contact, $group, false), ], 200); } }