Skip to content

Commit

Permalink
Merge pull request #10 from richard-muvirimi/development
Browse files Browse the repository at this point in the history
Run Quality Checks (Pint)
  • Loading branch information
richard-muvirimi committed Sep 27, 2023
2 parents 8959883 + 079818c commit 8518b45
Show file tree
Hide file tree
Showing 8 changed files with 93 additions and 94 deletions.
2 changes: 1 addition & 1 deletion app/Console/Commands/Scrape.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class Scrape extends Command
*/
public function handle(): void
{
$rates = Rate::query()->enabled()->whereDate("updated_at", "<", Carbon::now("UTC")->subMinutes(30)->format(CarbonInterface::DEFAULT_TO_STRING_FORMAT))->get();
$rates = Rate::query()->enabled()->whereDate('updated_at', '<', Carbon::now('UTC')->subMinutes(30)->format(CarbonInterface::DEFAULT_TO_STRING_FORMAT))->get();

$this->withProgressBar($rates, function (Rate $rate) {
$rate->scrape();
Expand Down
4 changes: 2 additions & 2 deletions app/Models/Rate.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ class Rate extends Model
*/
public function scopeSearch(Builder $query, string $search): Builder
{
return $query->where('rate_name', 'like', '%' . $search . '%');
return $query->where('rate_name', 'like', '%'.$search.'%');
}

/**
Expand Down Expand Up @@ -116,7 +116,7 @@ public function scopeUpdated(Builder $query): Builder
*/
public function scopeCors(Builder $query, bool $enable = true): Builder
{
if ($enable && !headers_sent()) {
if ($enable && ! headers_sent()) {
header('Access-Control-Allow-Origin', '*');
}

Expand Down
18 changes: 9 additions & 9 deletions app/Traits/ScrapesRates.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ private function getHtmlContent(Rate $theRate): string
{

$headers = [
'Authorization' => 'Bearer ' . env('SCRAPPY_TOKEN'),
'Authorization' => 'Bearer '.env('SCRAPPY_TOKEN'),
];

$body = [
Expand All @@ -62,7 +62,7 @@ private function getHtmlContent(Rate $theRate): string

$client = new Client($options);

$response = $client->post(env('SCRAPPY_SERVER') . '/scrape', [
$response = $client->post(env('SCRAPPY_SERVER').'/scrape', [
'headers' => $headers,
'form_params' => $body,
]);
Expand All @@ -72,7 +72,7 @@ private function getHtmlContent(Rate $theRate): string
$content = json_decode($response->getBody(), true);

if ($content['data'] !== 'false') {
return "<html lang=\"en-US\"><body>" . $content['data'] . "</body></html>";
return '<html lang="en-US"><body>'.$content['data'].'</body></html>';
}
}

Expand All @@ -86,7 +86,7 @@ private function getUserAgent(): string
{
$agent = Cache::get('user-agent');

if (!$agent) {
if (! $agent) {
$agent = env('USER_AGENT');

$agent = preg_replace('/headless/i', '', $agent);
Expand All @@ -110,7 +110,7 @@ private function parseHtml(string $html, Rate $theRate): void
$converter = new CssSelectorConverter();

$selector = $theRate->rate_selector;
if (!$this->isXpath($selector)) {
if (! $this->isXpath($selector)) {
$selector = $converter->toXPath($selector);
}

Expand All @@ -123,7 +123,7 @@ private function parseHtml(string $html, Rate $theRate): void
$theRate->rate = $rate;

$selector = $this->rate_updated_at_selector;
if (!$this->isXpath($selector)) {
if (! $this->isXpath($selector)) {
$selector = $converter->toXPath($selector);
}

Expand Down Expand Up @@ -166,7 +166,7 @@ private function cleanRate(string $value, string $locale): float
*/
$amount = preg_replace('/(\d)\s+(\d)/', '$1$2', $amount);

if (!is_numeric($amount)) {
if (! is_numeric($amount)) {
$words = explode(' ', $amount);

//remove non-numeric words
Expand Down Expand Up @@ -249,7 +249,7 @@ private function cleanDate(string $value, string $timezone): Carbon
/**
* Try to natural parse the date
*/
$parser = new TimeParser("english");
$parser = new TimeParser('english');

$parsed = $parser->parse($rawDate, true);

Expand Down Expand Up @@ -280,7 +280,7 @@ private function cleanDate(string $value, string $timezone): Carbon
$months[] = strtolower(DateTime::createFromFormat('n', $i)->format('F'));
}

$regex = "/\b(?!(" . implode('|', $months) . '|(\w[0-9][a-z])))(\w*[a-z]+[^\s]*|(\w[^\D\d\w]))/i';
$regex = "/\b(?!(".implode('|', $months).'|(\w[0-9][a-z])))(\w*[a-z]+[^\s]*|(\w[^\D\d\w]))/i';

$rawDate = preg_replace($regex, '', $rawDate);

Expand Down
4 changes: 2 additions & 2 deletions tests/CreatesApplication.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ trait CreatesApplication
*/
public function createApplication(): Application
{
$app = require __DIR__ . '/../bootstrap/app.php';
$app = require __DIR__.'/../bootstrap/app.php';

$app->usePublicPath(dirname(__DIR__) . '/public_html');
$app->usePublicPath(dirname(__DIR__).'/public_html');

$app->make(Kernel::class)->bootstrap();

Expand Down
38 changes: 19 additions & 19 deletions tests/Feature/ApiGraphqlTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,19 +32,19 @@ public function test_api_responds(): void
$response->assertJsonStructure([
'data' => [
'USD' => [
"*" => [
'*' => [
'currency',
'last_checked',
'last_updated',
'name',
'rate',
'url'
'url',
],
],
],
]);

Rate::query()->enabled()->updated()->get(["rate_currency", "updated_at", "rate_updated_at", "rate_name", "rate", "source_url"])->each(function (Rate $rate) use ($response) {
Rate::query()->enabled()->updated()->get(['rate_currency', 'updated_at', 'rate_updated_at', 'rate_name', 'rate', 'source_url'])->each(function (Rate $rate) use ($response) {
$response->assertJsonFragment([
'currency' => $rate->rate_currency,
'last_checked' => $rate->last_checked,
Expand All @@ -61,15 +61,15 @@ public function test_api_responds(): void
*/
public function test_filter_prefer_aggregate_works(): void
{
$aggregate = "MEDIAN";
$aggregate = 'MEDIAN';

$response = $this->graphQl(/** @lang GraphQL */ 'query($prefer : Prefer!) {USD : rate(prefer : $prefer) { currency last_checked last_updated rate }}', ["prefer" => $aggregate]);
$response = $this->graphQl(/** @lang GraphQL */ 'query($prefer : Prefer!) {USD : rate(prefer : $prefer) { currency last_checked last_updated rate }}', ['prefer' => $aggregate]);

$response->assertStatus(200);
$response->assertJsonStructure([
'data' => [
'USD' => [
"*" => [
'*' => [
'currency',
'last_checked',
'last_updated',
Expand All @@ -79,7 +79,7 @@ public function test_filter_prefer_aggregate_works(): void
],
]);

Rate::query()->enabled()->updated()->preferred($aggregate)->get(["rate_currency", "updated_at", "rate_updated_at", "rate"])->each(function (Rate $rate) use ($response) {
Rate::query()->enabled()->updated()->preferred($aggregate)->get(['rate_currency', 'updated_at', 'rate_updated_at', 'rate'])->each(function (Rate $rate) use ($response) {
$response->assertJsonFragment([
'currency' => $rate->rate_currency,
'last_checked' => $rate->last_checked,
Expand All @@ -97,25 +97,25 @@ public function test_filter_currency_works(): void

$currency = Rate::query()->enabled()->updated()->first(['rate_currency'])->currency;

$response = $this->graphQl(/** @lang GraphQL */ 'query ($currency: Currency!) { USD: rate(currency : $currency) { currency last_checked last_updated name rate url }}', ["currency" => $currency]);
$response = $this->graphQl(/** @lang GraphQL */ 'query ($currency: Currency!) { USD: rate(currency : $currency) { currency last_checked last_updated name rate url }}', ['currency' => $currency]);

$response->assertStatus(200);
$response->assertJsonStructure([
'data' => [
'USD' => [
"*" => [
'*' => [
'currency',
'last_checked',
'last_updated',
'name',
'rate',
'url'
'url',
],
],
],
]);

Rate::query()->enabled()->updated()->currency($currency)->get(["rate_currency", "updated_at", "rate_updated_at", "rate_name", "rate", "source_url"])->each(function (Rate $rate) use ($response) {
Rate::query()->enabled()->updated()->currency($currency)->get(['rate_currency', 'updated_at', 'rate_updated_at', 'rate_name', 'rate', 'source_url'])->each(function (Rate $rate) use ($response) {
$response->assertJsonFragment([
'currency' => $rate->rate_currency,
'last_checked' => $rate->last_checked,
Expand All @@ -135,25 +135,25 @@ public function test_filter_date_works(): void

$date = Carbon::now()->subDay()->getTimestamp();

$response = $this->graphQl(/** @lang GraphQL */ 'query ($date : Int!) { USD : rate(date: $date) { currency last_checked last_updated name rate url }}', ["date" => $date]);
$response = $this->graphQl(/** @lang GraphQL */ 'query ($date : Int!) { USD : rate(date: $date) { currency last_checked last_updated name rate url }}', ['date' => $date]);

$response->assertStatus(200);
$response->assertJsonStructure([
'data' => [
'USD' => [
"*" => [
'*' => [
'currency',
'last_checked',
'last_updated',
'name',
'rate',
'url'
'url',
],
],
],
]);

Rate::query()->enabled()->updated()->date($date)->get(["rate_currency", "updated_at", "rate_updated_at", "rate_name", "rate", "source_url"])->each(function (Rate $rate) use ($response) {
Rate::query()->enabled()->updated()->date($date)->get(['rate_currency', 'updated_at', 'rate_updated_at', 'rate_name', 'rate', 'source_url'])->each(function (Rate $rate) use ($response) {
$response->assertJsonFragment([
'currency' => $rate->rate_currency,
'last_checked' => $rate->last_checked,
Expand All @@ -177,16 +177,16 @@ public function test_info_is_included_in_response(): void
$response->assertJsonStructure([
'data' => [
'USD' => [
"*" => [
'*' => [
'currency',
'last_checked',
'last_updated',
'name',
'rate',
'url'
'url',
],
],
'info'
'info',
],
]);

Expand All @@ -200,7 +200,7 @@ public function test_info_is_included_in_response(): void
*/
public function test_cors_headers_are_set(): void
{
$response = $this->graphQl(/** @lang GraphQL */ 'query($cors : Boolean!) {USD : rate(cors : $cors) { currency last_checked last_updated name rate url }}', ["cors" => true]);
$response = $this->graphQl(/** @lang GraphQL */ 'query($cors : Boolean!) {USD : rate(cors : $cors) { currency last_checked last_updated name rate url }}', ['cors' => true]);

$response->assertStatus(200);
$response->assertHeader('Access-Control-Allow-Origin', '*');
Expand Down
35 changes: 17 additions & 18 deletions tests/Feature/ApiVersion0Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
*/
class ApiVersion0Test extends TestCase
{

/**
* Test no params of the api
*/
Expand All @@ -24,17 +23,17 @@ public function test_api_responds(): void

$response->assertStatus(200);
$response->assertJsonStructure([
"*" => [
'*' => [
'currency',
'last_checked',
'last_updated',
'name',
'rate',
'url'
'url',
],
]);

Rate::query()->enabled()->updated()->get(["rate_currency", "updated_at", "rate_updated_at", "rate_name", "rate", "source_url"])->each(function (Rate $rate) use ($response) {
Rate::query()->enabled()->updated()->get(['rate_currency', 'updated_at', 'rate_updated_at', 'rate_name', 'rate', 'source_url'])->each(function (Rate $rate) use ($response) {
$response->assertJsonFragment([
'currency' => $rate->rate_currency,
'last_checked' => $rate->last_checked,
Expand All @@ -53,22 +52,22 @@ public function test_api_responds(): void
public function test_filter_prefer_aggregate_works(): void
{
$query = [
'prefer' => "MEDIAN",
'prefer' => 'MEDIAN',
];

$response = $this->getJson('api?' . Arr::query($query));
$response = $this->getJson('api?'.Arr::query($query));

$response->assertStatus(200);
$response->assertJsonStructure([
"*" => [
'*' => [
'currency',
'last_checked',
'last_updated',
'rate',
],
]);

Rate::query()->enabled()->updated()->preferred($query["prefer"])->get(["rate_currency", "updated_at", "rate_updated_at", "rate"])->each(function (Rate $rate) use ($response) {
Rate::query()->enabled()->updated()->preferred($query['prefer'])->get(['rate_currency', 'updated_at', 'rate_updated_at', 'rate'])->each(function (Rate $rate) use ($response) {
$response->assertJsonFragment([
'currency' => $rate->rate_currency,
'last_checked' => $rate->last_checked,
Expand All @@ -87,21 +86,21 @@ public function test_filter_currency_works(): void
'currency' => Rate::query()->enabled()->updated()->first(['rate_currency'])->currency,
];

$response = $this->getJson('api?' . Arr::query($query));
$response = $this->getJson('api?'.Arr::query($query));

$response->assertStatus(200);
$response->assertJsonStructure([
"*" => [
'*' => [
'currency',
'last_checked',
'last_updated',
'name',
'rate',
'url'
]
'url',
],
]);

Rate::query()->enabled()->updated()->currency($query["currency"])->get(["rate_currency", "updated_at", "rate_updated_at", "rate_name", "rate", "source_url"])->each(function (Rate $rate) use ($response) {
Rate::query()->enabled()->updated()->currency($query['currency'])->get(['rate_currency', 'updated_at', 'rate_updated_at', 'rate_name', 'rate', 'source_url'])->each(function (Rate $rate) use ($response) {
$response->assertJsonFragment([
'currency' => $rate->rate_currency,
'last_checked' => $rate->last_checked,
Expand All @@ -124,22 +123,22 @@ public function test_filter_date_works(): void
'date' => Carbon::now()->subDay()->getTimestamp(),
];

$response = $this->getJson('api?' . Arr::query($query));
$response = $this->getJson('api?'.Arr::query($query));

$response->assertStatus(200);

$response->assertJsonStructure([
"*" => [
'*' => [
'currency',
'last_checked',
'last_updated',
'name',
'rate',
'url'
]
'url',
],
]);

Rate::query()->enabled()->updated()->date($query["date"])->get(["rate_currency", "updated_at", "rate_updated_at", "rate_name", "rate", "source_url"])->each(function (Rate $rate) use ($response) {
Rate::query()->enabled()->updated()->date($query['date'])->get(['rate_currency', 'updated_at', 'rate_updated_at', 'rate_name', 'rate', 'source_url'])->each(function (Rate $rate) use ($response) {
$response->assertJsonFragment([
'currency' => $rate->rate_currency,
'last_checked' => $rate->last_checked,
Expand Down
Loading

0 comments on commit 8518b45

Please sign in to comment.