Skip to content

Commit

Permalink
[change]: code review
Browse files Browse the repository at this point in the history
  • Loading branch information
PG-Momik committed May 5, 2023
1 parent 69cfa2e commit f74ee6c
Show file tree
Hide file tree
Showing 7 changed files with 72 additions and 8 deletions.
14 changes: 11 additions & 3 deletions app/Console/Commands/FixDocumentLink.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

use App\IATI\Models\Activity\Activity;
use App\IATI\Models\Organization\Organization;
use App\IATI\Services\Activity\ActivityService;
use App\IATI\Services\Organization\OrganizationService;
use App\IATI\Traits\MigrateActivityTrait;
use App\IATI\Traits\MigrateOrganizationTrait;
use Exception;
Expand Down Expand Up @@ -78,8 +80,14 @@ class FixDocumentLink extends Command
*
* @param DB $db
* @param DatabaseManager $databaseManager
* @param OrganizationService $organizationService
* @param ActivityService $activityService
*/
public function __construct(protected DB $db, protected DatabaseManager $databaseManager)
public function __construct(protected DB $db,
protected DatabaseManager $databaseManager,
protected OrganizationService $organizationService,
protected ActivityService $activityService
)
{
parent::__construct();
}
Expand Down Expand Up @@ -111,11 +119,11 @@ public function handle(): int
$aidstreamOrganizationIdentifierArray = $this->getAidstreamOrganizationIdentifier($aidstreamOrganizationIds);
$aidstreamOrganizationIdentifierArray = array_map('strtolower', $aidstreamOrganizationIdentifierArray);

$iatiOrganizations = Organization::whereIn('publisher_id', $aidstreamOrganizationIdentifierArray)->get();
$iatiOrganizations = $this->organizationService->getOrganizationByPublisherIds($aidstreamOrganizationIdentifierArray);
$iatiOrganizationIdArray = $iatiOrganizations->pluck('id', 'publisher_id');

$idMap = $this->mapOrganizationIds($aidstreamOrganizationIdentifierArray, $iatiOrganizationIdArray);
$activities = Activity::whereIn('org_id', $idMap)->get();
$activities = $this->activityService->getActivitiesByOrgIds($idMap);

foreach ($activities as $activity) {
$this->fixActivityResultDocumentLink($activity);
Expand Down
6 changes: 4 additions & 2 deletions app/Console/Commands/FixRegionIssues.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace App\Console\Commands;

use App\IATI\Models\Organization\Organization;
use App\IATI\Services\Organization\OrganizationService;
use App\IATI\Traits\MigrateActivityTrait;
use App\IATI\Traits\MigrateOrganizationTrait;
use Exception;
Expand Down Expand Up @@ -38,7 +39,8 @@ class FixRegionIssues extends Command

public function __construct(
protected DB $db,
protected DatabaseManager $databaseManager
protected DatabaseManager $databaseManager,
protected OrganizationService $organizationService
) {
parent::__construct();
}
Expand Down Expand Up @@ -77,7 +79,7 @@ public function handle(): void
$recipientRegionBudgetArray = $aidstreamOrganizationDataCollectionArray->pluck('recipient_region_budget', 'organization_id');
$aidstreamOrganizationIdentifierArray = array_map('strtolower', $aidstreamOrganizationIdentifierArray);

$iatiOrganizations = Organization::whereIn('publisher_id', $aidstreamOrganizationIdentifierArray)->get();
$iatiOrganizations = $this->organizationService->getOrganizationByPublisherIds($aidstreamOrganizationIdentifierArray);
$iatiOrganizationIdArray = $iatiOrganizations->pluck('id', 'publisher_id');

$idMap = $this->mapOrganizationIds($aidstreamOrganizationIdentifierArray, $iatiOrganizationIdArray);
Expand Down
14 changes: 11 additions & 3 deletions app/Console/Commands/FixTransaction.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

use App\IATI\Models\Activity\Activity;
use App\IATI\Models\Organization\Organization;
use App\IATI\Services\Activity\ActivityService;
use App\IATI\Services\Organization\OrganizationService;
use App\IATI\Traits\MigrateOrganizationTrait;
use Illuminate\Console\Command;
use Illuminate\Database\DatabaseManager;
Expand Down Expand Up @@ -39,8 +41,14 @@ class FixTransaction extends Command
*
* @param DB $db
* @param DatabaseManager $databaseManager
* @param ActivityService $activityService
* @param OrganizationService $organizationService
*/
public function __construct(protected DB $db, protected DatabaseManager $databaseManager)
public function __construct(protected DB $db,
protected DatabaseManager $databaseManager,
protected ActivityService $activityService,
protected OrganizationService $organizationService
)
{
parent::__construct();
}
Expand Down Expand Up @@ -72,11 +80,11 @@ public function handle()
$aidstreamOrganizationIdentifierArray = $this->getAidstreamOrganizationIdentifier($aidstreamOrganizationIds);
$aidstreamOrganizationIdentifierArray = array_map('strtolower', $aidstreamOrganizationIdentifierArray);

$iatiOrganizations = Organization::whereIn('publisher_id', $aidstreamOrganizationIdentifierArray)->get();
$iatiOrganizations = $this->organizationService->getOrganizationByPublisherIds($aidstreamOrganizationIdentifierArray);
$iatiOrganizationIdArray = $iatiOrganizations->pluck('id', 'publisher_id');

$idMap = $this->mapOrganizationIds($aidstreamOrganizationIdentifierArray, $iatiOrganizationIdArray);
$activities = Activity::whereIn('org_id', $idMap)->get();
$activities = $this->activityService->getActivitiesByOrgIds($idMap);

foreach ($activities as $activity) {
$this->fixAllTransaction($activity);
Expand Down
11 changes: 11 additions & 0 deletions app/IATI/Repositories/Activity/ActivityRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -472,4 +472,15 @@ public function updateReportingOrg($id, $key, $data): int
{
return $this->model->where('id', $id)->update(["reporting_org->0->{$key}"=>$data]);
}

/**
* Returns activities by org ids
* @param array $orgIds
*
* @return Collection|array
*/
public function getActivitiesByOrgIds(array $orgIds): Collection | array
{
return $this->model->whereIn('org_id', $orgIds)->get();
}
}
12 changes: 12 additions & 0 deletions app/IATI/Repositories/Organization/OrganizationRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use App\IATI\Repositories\Repository;
use App\IATI\Traits\FillDefaultValuesTrait;
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Collection;

Expand Down Expand Up @@ -176,4 +177,15 @@ public function getOrganizationByPublisherId($publisherId): ?object
{
return $this->model->where('publisher_id', $publisherId)->with(['settings', 'users', 'activities'])->first();
}
/**
* Returns Organizations by publisher ids
*
* @param array $publisherIds
*
* @return array|Collection
*/
public function getOrganizationByPublisherIds(array $publisherIds): Collection | array
{
return $this->model->whereIn('publisher_id', $publisherIds)->get();
}
}
11 changes: 11 additions & 0 deletions app/IATI/Services/Activity/ActivityService.php
Original file line number Diff line number Diff line change
Expand Up @@ -674,4 +674,15 @@ public function getReportingOrg(): mixed
{
return app(OrganizationRepository::class)->getSpecifiedColumn(auth()->user()->organization->id, 'reporting_org');
}
/**
* Returns activities by organization ids
*
* @param array $idMap
*
* @return array|Collection
*/
public function getActivitiesByOrgIds(array $idMap): Collection | array
{
return $this->activityRepository->getActivitiesByOrgIds($idMap);
}
}
12 changes: 12 additions & 0 deletions app/IATI/Services/Organization/OrganizationService.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
use GuzzleHttp\Client;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
Expand Down Expand Up @@ -236,4 +237,15 @@ public function getOrganizationByPublisherId($publisher_id): ?object
{
return $this->organizationRepo->getOrganizationByPublisherId($publisher_id);
}
/**
* Returns organizations by publisher ids
*
* @param array $publisherIds
*
* @return Builder|Model|mixed|object|null
*/
public function getOrganizationByPublisherIds(array $publisherIds): mixed
{
return $this->organizationRepo->getOrganizationByPublisherIds($publisherIds);
}
}

0 comments on commit f74ee6c

Please sign in to comment.