Various code reshuffelling.

This commit is contained in:
James Cole
2021-03-12 06:20:01 +01:00
parent 97561ab9c9
commit 748d61fb8f
51 changed files with 1874 additions and 1873 deletions

View File

@@ -32,16 +32,6 @@ use FireflyIII\User;
*/
trait CreatesObjectGroups
{
/**
* @param string $title
*
* @return null|ObjectGroup
*/
protected function findObjectGroup(string $title): ?ObjectGroup
{
return $this->user->objectGroups()->where('title', $title)->first();
}
/**
* @param int $groupId
*
@@ -79,7 +69,7 @@ trait CreatesObjectGroups
*/
protected function getObjectGroupMaxOrder(): int
{
return (int) $this->user->objectGroups()->max('order');
return (int)$this->user->objectGroups()->max('order');
}
/**
@@ -91,4 +81,14 @@ trait CreatesObjectGroups
{
return 1 === $this->user->objectGroups()->where('title', $title)->count();
}
/**
* @param string $title
*
* @return null|ObjectGroup
*/
protected function findObjectGroup(string $title): ?ObjectGroup
{
return $this->user->objectGroups()->where('title', $title)->first();
}
}

View File

@@ -39,6 +39,49 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface
/** @var User */
private $user;
/**
* @inheritDoc
*/
public function deleteAll(): void
{
$all = $this->get();
/** @var ObjectGroup $group */
foreach ($all as $group) {
$group->piggyBanks()->sync([]);
$group->bills()->sync([]);
$group->delete();
}
}
/**
* @inheritDoc
*/
public function deleteEmpty(): void
{
$all = $this->get();
/** @var ObjectGroup $group */
foreach ($all as $group) {
$count = DB::table('object_groupables')->where('object_groupables.object_group_id', $group->id)->count();
if (0 === $count) {
$group->delete();
}
}
}
/**
* @inheritDoc
*/
public function destroy(ObjectGroup $objectGroup): void
{
$list = $objectGroup->piggyBanks;
/** @var PiggyBank $piggy */
foreach ($list as $piggy) {
$piggy->objectGroups()->sync([]);
$piggy->save();
}
$objectGroup->delete();
}
/**
* @inheritDoc
*/
@@ -49,9 +92,25 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface
->orderBy('order', 'ASC')->orderBy('title', 'ASC')->get();
}
/**
* @inheritDoc
*/
public function getBills(ObjectGroup $objectGroup): Collection
{
return $objectGroup->bills;
}
/**
* @inheritDoc
*/
public function getPiggyBanks(ObjectGroup $objectGroup): Collection
{
return $objectGroup->piggyBanks;
}
/**
* @param string $query
* @param int $limit
* @param int $limit
*
* @return Collection
*/
@@ -74,16 +133,15 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface
/**
* @inheritDoc
*/
public function deleteEmpty(): void
public function setOrder(ObjectGroup $objectGroup, int $order): ObjectGroup
{
$all = $this->get();
/** @var ObjectGroup $group */
foreach ($all as $group) {
$count = DB::table('object_groupables')->where('object_groupables.object_group_id', $group->id)->count();
if (0 === $count) {
$group->delete();
}
}
$order = 0 === $order ? 1 : $order;
$objectGroup->order = $order;
$objectGroup->save();
Log::debug(sprintf('Objectgroup #%d order is now %d', $objectGroup->id, $order));
return $objectGroup;
}
/**
@@ -102,20 +160,6 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface
}
}
/**
* @inheritDoc
*/
public function setOrder(ObjectGroup $objectGroup, int $order): ObjectGroup
{
$order = 0 === $order ? 1 : $order;
$objectGroup->order = $order;
$objectGroup->save();
Log::debug(sprintf('Objectgroup #%d order is now %d', $objectGroup->id, $order));
return $objectGroup;
}
/**
* @inheritDoc
*/
@@ -133,20 +177,6 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface
return $objectGroup;
}
/**
* @inheritDoc
*/
public function destroy(ObjectGroup $objectGroup): void
{
$list = $objectGroup->piggyBanks;
/** @var PiggyBank $piggy */
foreach($list as $piggy) {
$piggy->objectGroups()->sync([]);
$piggy->save();
}
$objectGroup->delete();
}
/**
* @param User $user
*/
@@ -154,34 +184,4 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface
{
$this->user = $user;
}
/**
* @inheritDoc
*/
public function getPiggyBanks(ObjectGroup $objectGroup): Collection
{
return $objectGroup->piggyBanks;
}
/**
* @inheritDoc
*/
public function getBills(ObjectGroup $objectGroup): Collection
{
return $objectGroup->bills;
}
/**
* @inheritDoc
*/
public function deleteAll(): void
{
$all = $this->get();
/** @var ObjectGroup $group */
foreach ($all as $group) {
$group->piggyBanks()->sync([]);
$group->bills()->sync([]);
$group->delete();
}
}
}

View File

@@ -32,34 +32,25 @@ use Illuminate\Support\Collection;
*/
interface ObjectGroupRepositoryInterface
{
/**
* @return Collection
*/
public function get(): Collection;
/**
* @param string $query
* @param int $limit
*
* @return Collection
*/
public function search(string $query, int $limit): Collection;
/**
* Delete empty ones.
*/
public function deleteEmpty(): void;
/**
* Delete all.
*/
public function deleteAll(): void;
/**
* Delete empty ones.
*/
public function deleteEmpty(): void;
/**
* @param ObjectGroup $objectGroup
*
*/
public function destroy(ObjectGroup $objectGroup): void;
/**
* @return Collection
*/
public function getPiggyBanks(ObjectGroup $objectGroup): Collection;
public function get(): Collection;
/**
* @param ObjectGroup $objectGroup
@@ -69,9 +60,19 @@ interface ObjectGroupRepositoryInterface
public function getBills(ObjectGroup $objectGroup): Collection;
/**
* Sort
* @param ObjectGroup $objectGroup
*
* @return Collection
*/
public function sort(): void;
public function getPiggyBanks(ObjectGroup $objectGroup): Collection;
/**
* @param string $query
* @param int $limit
*
* @return Collection
*/
public function search(string $query, int $limit): Collection;
/**
* @param ObjectGroup $objectGroup
@@ -81,6 +82,11 @@ interface ObjectGroupRepositoryInterface
*/
public function setOrder(ObjectGroup $objectGroup, int $index): ObjectGroup;
/**
* Sort
*/
public function sort(): void;
/**
* @param ObjectGroup $objectGroup
* @param array $data
@@ -89,9 +95,4 @@ interface ObjectGroupRepositoryInterface
*/
public function update(ObjectGroup $objectGroup, array $data): ObjectGroup;
/**
* @param ObjectGroup $objectGroup
*/
public function destroy(ObjectGroup $objectGroup): void;
}