Skip to content

Commit

Permalink
fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
asbiin committed Jul 8, 2023
1 parent a882794 commit 5ce031e
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace App\Domains\Contact\DavClient\Jobs;

use App\Domains\Contact\DavClient\Services\SynchronizeAddressBook;
use App\Models\AddressBookSubscription;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,10 @@ public function permissions(): array

/**
* Add a new Adress Book.
*
* @throws DavClientException
*/
public function execute(array $data): ?AddressBookSubscription
public function execute(array $data): AddressBookSubscription
{
$this->validateRules($data);

Expand All @@ -53,7 +55,7 @@ public function execute(array $data): ?AddressBookSubscription
return $this->createAddressBook($data, $addressBookData);
}

private function createAddressBook(array $data, array $addressBookData): ?AddressBookSubscription
private function createAddressBook(array $data, array $addressBookData): AddressBookSubscription
{
return AddressBookSubscription::create([
'user_id' => $this->author->id,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ private function preparePushMissedContacts(array $added, Collection $distContact
$addedUuids = collect($added)->map(fn (string $uri): string => $this->backend()->getUuid($uri));

return collect($localContacts)
->filter(fn (Contact $contact): bool => ! $distUuids->contains($contact->uuid)
&& ! $addedUuids->contains($contact->uuid)
->filter(fn (Contact $contact): bool => ! $distUuids->contains($contact->id)
&& ! $addedUuids->contains($contact->id)
)
->map(function (Contact $contact): PushVCard {
$card = $this->backend()->prepareCard($contact);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,14 @@ class AddressBookContactsUpdaterMissed
/**
* Update local missed contacts.
*
* @param Collection<array-key, \App\Models\Contact\Contact> $localContacts
* @param Collection<array-key, \App\Models\Contact> $localContacts
* @param Collection<array-key, \App\Domains\Contact\DavClient\Services\Utils\Model\ContactDto> $distContacts
*/
public function execute(Collection $localContacts, Collection $distContacts): Collection
{
$uuids = $localContacts->pluck('uuid');
$uuids = $localContacts->pluck('id');

$missed = $distContacts->reject(fn (ContactDto $contact): bool => $uuids->contains($this->backend()->getUuid($contact->uri))
);
$missed = $distContacts->reject(fn (ContactDto $contact): bool => $uuids->contains($this->backend()->getUuid($contact->uri)));

return app(AddressBookContactsUpdater::class)
->withSubscription($this->subscription)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,8 @@ private function iterateOver(array $list, string $name, callable $callback): mix
return $callback($item);
}
}

return null;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ trait HasCapability
*/
private function hasCapability(string $capability): bool
{
return Arr::get($this->subscription->capabilities, $capability, false);
/** @var \App\Models\AddressBookSubscription */
$subscription = $this->subscription;

return Arr::get($subscription->capabilities, $capability, false);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ public function withSubscription(AddressBookSubscription $subscription): self
return $this;
}

private ?CardDAVBackend $backend = null;
protected ?CardDAVBackend $backend = null;

/**
* Get carddav backend.
*/
protected function backend(): CardDAVBackend
{
return $backend ?? $backend = app(CardDAVBackend::class)->withUser($this->subscription->user);
return $this->backend ?? $this->backend = app(CardDAVBackend::class)->withUser($this->subscription->user);
}
}
22 changes: 5 additions & 17 deletions app/Models/AddressBookSubscription.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use function safe\json_decode;
use function safe\json_encode;

class AddressBookSubscription extends Model
{
Expand Down Expand Up @@ -51,10 +49,13 @@ class AddressBookSubscription extends Model
* @var array<string, string>
*/
protected $casts = [
'user_id' => 'string',
'vault_id' => 'string',
'last_synchronized_at' => 'datetime',
'readonly' => 'boolean',
'active' => 'boolean',
'localSyncToken' => 'integer',
'capabilities' => 'array',
];

/**
Expand Down Expand Up @@ -96,19 +97,6 @@ public function vault()
return $this->belongsTo(Vault::class);
}

/**
* Get capabilities.
*
* @return Attribute<string,string>
*/
public function capabilities(): Attribute
{
return Attribute::make(
get: fn ($value) => json_decode($value, true),
set: fn ($value) => json_encode($value)
);
}

/**
* Get password.
*
Expand All @@ -117,8 +105,8 @@ public function capabilities(): Attribute
public function password(): Attribute
{
return Attribute::make(
get: fn ($value) => decrypt($value, true),
set: fn ($value) => encrypt($value)
get: fn (?string $value) => decrypt($value, true),
set: fn (string $value) => encrypt($value)
);
}

Expand Down

0 comments on commit 5ce031e

Please sign in to comment.