magickatt/MultiContextBDDTalk

View on GitHub
backend/src/HistoricalMeteorological/Service/ResponseService.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
 
namespace HistoricalMeteorological\Service;
 
use HistoricalMeteorological\Calculator\EntryCollectionSummaryCalculator;
use HistoricalMeteorological\Calculator\Summary\EntrySummary;
use HistoricalMeteorological\Collection\Summary\EntryAggregateSummaryCollection;
use HistoricalMeteorological\Collection\Summary\EntryComparisonSummaryCollection;
use HistoricalMeteorological\Collection\YearCollection;
use HistoricalMeteorological\Transformer\EntrySummaryTransformer;
use HistoricalMeteorological\Transformer\EntryTransformer;
use HistoricalMeteorological\Transformer\LocationTransformer;
use Symfony\Component\HttpFoundation\JsonResponse;
use HistoricalMeteorological\Entity\Location;
use HistoricalMeteorological\Collection\CollectionInterface;
use HistoricalMeteorological\Collection\LocationCollection;
use HistoricalMeteorological\Collection\EntryCollection;
 
class ResponseService
{
const HEADERS = [
'Access-Control-Allow-Origin' => '*'
];
 
public function createEntryAggregateSummaryCollectionResponse(EntryAggregateSummaryCollection $summaryCollection)
{
$collection = $summaryCollection->getCollection();
Avoid using static access to class '\HistoricalMeteorological\Calculator\EntryCollectionSummaryCalculator' in method 'createEntryAggregateSummaryCollectionResponse'.
$summary = EntryCollectionSummaryCalculator::summariseEntryCollection($collection, new EntrySummary());
 
return new JsonResponse([
'data' => array_map(array(EntryTransformer::class, 'transformEntryToArray'), $collection->toArray()),
Avoid using static access to class '\HistoricalMeteorological\Transformer\EntrySummaryTransformer' in method 'createEntryAggregateSummaryCollectionResponse'.
'meta' => EntrySummaryTransformer::transformEntrySummaryToArray($summary),
'links' => []
]);
}
 
Line exceeds 120 characters; contains 122 characters
public function createEntryComparisonSummaryCollectionResponse(EntryComparisonSummaryCollection $comparisonCollection)
{
$collection1 = $comparisonCollection->getFirstCollection();
$collection2 = $comparisonCollection->getSecondCollection();
Avoid using static access to class '\HistoricalMeteorological\Calculator\EntryCollectionSummaryCalculator' in method 'createEntryComparisonSummaryCollectionResponse'.
$summaryComparison = EntryCollectionSummaryCalculator::compareEntryCollections($collection1, $collection2);
 
return new JsonResponse([
Line exceeds 120 characters; contains 135 characters
'data' => array_map(array(EntryTransformer::class, 'transformEntryToArray'), $collection1->merge($collection2)->toArray()),
Avoid using static access to class '\HistoricalMeteorological\Transformer\EntrySummaryTransformer' in method 'createEntryComparisonSummaryCollectionResponse'.
'meta' => EntrySummaryTransformer::transformEntrySummaryComparisonToArray($summaryComparison),
'links' => []
]);
}
 
public function createLocationCollectionResponse(LocationCollection $collection)
{
return new JsonResponse([
'data' => array_map(array(LocationTransformer::class, 'transformLocationToArray'), $collection->toArray())
]);
}
 
public function createYearsResponse(YearCollection $collection)
{
return new JsonResponse(['data' => $collection->toArray()]);
}
 
public function createLocationResponse(Location $location, int $responseCode = 200)
{
Avoid using static access to class '\HistoricalMeteorological\Transformer\LocationTransformer' in method 'createLocationResponse'.
return $this->createSingularResponse(LocationTransformer::transformLocationToArray($location), $responseCode);
}
 
private function createSingularResponse(array $array, int $responseCode = 200)
{
return new JsonResponse(['data' => $array], $responseCode);
}
 
Avoid unused private methods such as 'createPluralResponse'.
private function createPluralResponse(CollectionInterface $collection, int $responseCode = 200)
{
return new JsonResponse(
[
'data' => $collection->toArray(),
'meta' => [],
'links' => []
],
$responseCode
);
}
}