Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file modified .env
100644 → 100755
Empty file.
Empty file modified .gitignore
100644 → 100755
Empty file.
Empty file modified .phpunit.result.cache
100644 → 100755
Empty file.
Empty file modified Dockerfile
100644 → 100755
Empty file.
Empty file modified README.md
100644 → 100755
Empty file.
Empty file modified docker-compose.yml
100644 → 100755
Empty file.
Empty file modified nginx/default.conf
100644 → 100755
Empty file.
Empty file modified src/.editorconfig
100644 → 100755
Empty file.
Empty file modified src/.env.example
100644 → 100755
Empty file.
Empty file modified src/.gitattributes
100644 → 100755
Empty file.
Empty file modified src/.gitignore
100644 → 100755
Empty file.
Empty file modified src/.styleci.yml
100644 → 100755
Empty file.
Empty file modified src/CHANGELOG.md
100644 → 100755
Empty file.
Empty file modified src/README.md
100644 → 100755
Empty file.
11 changes: 11 additions & 0 deletions src/app/Application/CoinDataSource/CoinDataSource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

namespace App\Application\CoinDataSource;

use App\Domain\Coin;
use Mockery\Exception;

Interface CoinDataSource
{
public function findByCoinId(string $coin_id);
}
37 changes: 37 additions & 0 deletions src/app/Application/CoinDataSource/CryptoCoinDataSource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace App\Application\CoinDataSource;


use App\Domain\Coin;
use Exception;

class CryptoCoinDataSource implements CoinDataSource
{
public function findByCoinId(string $coin_id)
{
$path = 'https://api.coinlore.net/api/ticker/?id=' . $coin_id;

$ch = curl_init($path);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER,0);
$data = json_decode(curl_exec($ch));
curl_close($ch);

if($data == null){
return new Exception("A coin with the specified ID was not found.");
//return new Coin("1","ERROR","ERR","0",1,"ERROR",1);
}
$data = $data[0];
$name = $data->name;
$symbol = $data->symbol;
$amount = 0;
$value_usd = floatval($data->price_usd);
$name_id = $data->nameid;
$rank = $data->rank;

$Coin = new Coin($amount,$coin_id,$name,$name_id,$rank,$symbol,$value_usd);

return $Coin;
}
}
36 changes: 36 additions & 0 deletions src/app/Application/CoinService/CoinService.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php

namespace App\Application\CoinService;

use App\Application\CoinDataSource\CoinDataSource;
use App\Application\CoinDataSource\CryptoCoinDataSource;
use App\Domain\Coin;
use Exception;


class CoinService
{
/**
* @var CoinDataSource
*/
private $coinDataSource;

/**
* @param CoinDataSource $coinDataSource
*/
public function __construct(CoinDataSource $coinDataSource)
{
$this->coinDataSource = $coinDataSource;
}

/**use App\Domain\Coin;
* @param string $coin_id
* @return Coin|Exception
* @throws Exception
*/
public function execute(string $coin_id)
{
$coin = $this->coinDataSource->findByCoinId($coin_id);
return $coin;
}
}
40 changes: 0 additions & 40 deletions src/app/Application/EarlyAdopter/IsEarlyAdopterService.php

This file was deleted.

10 changes: 0 additions & 10 deletions src/app/Application/UserDataSource/UserDataSource.php

This file was deleted.

Empty file modified src/app/Console/Kernel.php
100644 → 100755
Empty file.
152 changes: 152 additions & 0 deletions src/app/Domain/Coin.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
<?php

namespace App\Domain;

class Coin
{
public float $amount;
public string $coin_id;
public string $name;
public string $name_id;
public int $rank;
public string $symbol;
public float $value_usd;

/**
* @param float $amount
* @param string $coin_id
* @param string $name
* @param string $name_id
* @param int $rank
* @param string $symbol
* @param float $value_usd
*/
public function __construct(float $amount, string $coin_id, string $name, string $name_id, int $rank, string $symbol, float $value_usd)
{
$this->amount = $amount;
$this->coin_id = $coin_id;
$this->name = $name;
$this->name_id = $name_id;
$this->rank = $rank;
$this->symbol = $symbol;
$this->value_usd = $value_usd;
}


/**
* @return string
*/
public function getNameId(): string
{
return $this->name_id;
}

/**
* @param string $name_id
*/
public function setNameId(string $name_id): void
{
$this->name_id = $name_id;
}

/**
* @return int
*/
public function getRank(): int
{
return $this->rank;
}

/**
* @param int $rank
*/
public function setRank(int $rank): void
{
$this->rank = $rank;
}




/**
* @return string
*/
public function getCoinId(): string
{
return $this->coin_id;
}

/**
* @param string $coin_id
*/
public function setCoinId(string $coin_id): void
{
$this->coin_id = $coin_id;
}

/**
* @return string
*/
public function getName(): string
{
return $this->name;
}

/**
* @param string $name
*/
public function setName(string $name): void
{
$this->name = $name;
}

/**
* @return string
*/
public function getSymbol(): string
{
return $this->symbol;
}

/**
* @param string $symbol
*/
public function setSymbol(string $symbol): void
{
$this->symbol = $symbol;
}

/**
* @return float
*/
public function getAmount(): float
{
return $this->amount;
}

/**
* @param float $amount
*/
public function setAmount(float $amount): void
{
$this->amount = $amount;
}

/**
* @return float
*/
public function getValueUsd(): float
{
return $this->value_usd;
}

/**
* @param float $value_usd
*/
public function setValueUsd(float $value_usd): void
{
$this->value_usd = $value_usd;
}


}
Empty file modified src/app/Domain/User.php
100644 → 100755
Empty file.
Empty file modified src/app/Infrastructure/Controllers/CacheController.php
100644 → 100755
Empty file.
43 changes: 43 additions & 0 deletions src/app/Infrastructure/Controllers/GetCoinController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?php

namespace App\Infrastructure\Controllers;

use App\Application\CoinService\CoinService;
use Exception;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Response;
use Illuminate\Routing\Controller as BaseController;

class GetCoinController extends BaseController
{
private $CoinService;

/**
* UserController constructor.
*/
public function __construct(CoinService $CoinService)
{
$this->CoinService = $CoinService;
}

public function __invoke(int $id): JsonResponse
{
try {
$CoinService = $this->CoinService->execute($id);
} catch (Exception $exception) {
if ($exception->getMessage() == "A coin with the specified ID was not found.") {
return response()->json([
'error' => $exception->getMessage()
], Response::HTTP_NOT_FOUND);
}else{
return response()->json([
'error' => 'Service Unavailible'
], Response::HTTP_SERVICE_UNAVAILABLE);
}
}

return response()->json([
$CoinService
], Response::HTTP_OK);
}
}
Empty file modified src/app/Infrastructure/Controllers/GetUserController.php
100644 → 100755
Empty file.
Empty file.
Empty file modified src/app/Infrastructure/Controllers/StatusController.php
100644 → 100755
Empty file.
Empty file modified src/app/Infrastructure/Controllers/testController.php
100644 → 100755
Empty file.
Empty file modified src/app/Infrastructure/Exceptions/Handler.php
100644 → 100755
Empty file.
19 changes: 0 additions & 19 deletions src/app/Infrastructure/FakeUserDataSource.php

This file was deleted.

Empty file modified src/app/Infrastructure/Kernel.php
100644 → 100755
Empty file.
Empty file modified src/app/Infrastructure/Middleware/Authenticate.php
100644 → 100755
Empty file.
Empty file modified src/app/Infrastructure/Middleware/EncryptCookies.php
100644 → 100755
Empty file.
Empty file.
Empty file modified src/app/Infrastructure/Middleware/RedirectIfAuthenticated.php
100644 → 100755
Empty file.
Empty file modified src/app/Infrastructure/Middleware/TrimStrings.php
100644 → 100755
Empty file.
Empty file modified src/app/Infrastructure/Middleware/TrustHosts.php
100644 → 100755
Empty file.
Empty file modified src/app/Infrastructure/Middleware/TrustProxies.php
100644 → 100755
Empty file.
Empty file modified src/app/Infrastructure/Middleware/VerifyCsrfToken.php
100644 → 100755
Empty file.
9 changes: 5 additions & 4 deletions src/app/Infrastructure/Providers/AppServiceProvider.php
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

namespace App\Infrastructure\Providers;

use App\Application\UserDataSource\UserDataSource;
use App\Application\CoinDataSource\CoinDataSource;
use App\Application\CoinDataSource\CryptoCoinDataSource;
use App\DataSource\Database\EloquentUserDataSource;
use Illuminate\Support\ServiceProvider;

Expand All @@ -25,8 +26,8 @@ public function register()
*/
public function boot()
{
// $this->app->bind(UserDataSource::class, function () {
// return new EloquentUserDataSource();
// });
$this->app->bind(CoinDataSource::class, function () {
return new CryptoCoinDataSource();
});
}
}
Empty file modified src/app/Infrastructure/Providers/AuthServiceProvider.php
100644 → 100755
Empty file.
Empty file modified src/app/Infrastructure/Providers/BroadcastServiceProvider.php
100644 → 100755
Empty file.
Empty file modified src/app/Infrastructure/Providers/EventServiceProvider.php
100644 → 100755
Empty file.
Empty file modified src/app/Infrastructure/Providers/RouteServiceProvider.php
100644 → 100755
Empty file.
Empty file modified src/bootstrap/app.php
100644 → 100755
Empty file.
Empty file modified src/bootstrap/cache/.gitignore
100644 → 100755
Empty file.
Empty file modified src/composer.json
100644 → 100755
Empty file.
Empty file modified src/composer.lock
100644 → 100755
Empty file.
Empty file modified src/config/app.php
100644 → 100755
Empty file.
Empty file modified src/config/auth.php
100644 → 100755
Empty file.
Empty file modified src/config/broadcasting.php
100644 → 100755
Empty file.
Empty file modified src/config/cache.php
100644 → 100755
Empty file.
Empty file modified src/config/cors.php
100644 → 100755
Empty file.
Empty file modified src/config/database.php
100644 → 100755
Empty file.
Empty file modified src/config/debugbar.php
100644 → 100755
Empty file.
Empty file modified src/config/filesystems.php
100644 → 100755
Empty file.
Empty file modified src/config/hashing.php
100644 → 100755
Empty file.
Empty file modified src/config/logging.php
100644 → 100755
Empty file.
Empty file modified src/config/mail.php
100644 → 100755
Empty file.
Empty file modified src/config/queue.php
100644 → 100755
Empty file.
Empty file modified src/config/services.php
100644 → 100755
Empty file.
Empty file modified src/config/session.php
100644 → 100755
Empty file.
Empty file modified src/config/view.php
100644 → 100755
Empty file.
Empty file modified src/package.json
100644 → 100755
Empty file.
Empty file modified src/phpunit.xml
100644 → 100755
Empty file.
Empty file modified src/postman/base_postman_collection.json
100644 → 100755
Empty file.
Empty file modified src/public/.htaccess
100644 → 100755
Empty file.
Empty file modified src/public/favicon.ico
100644 → 100755
Empty file.
Empty file modified src/public/index.php
100644 → 100755
Empty file.
Empty file modified src/public/robots.txt
100644 → 100755
Empty file.
Empty file modified src/public/web.config
100644 → 100755
Empty file.
Empty file modified src/resources/css/app.css
100644 → 100755
Empty file.
Empty file modified src/resources/js/app.js
100644 → 100755
Empty file.
Empty file modified src/resources/js/bootstrap.js
100644 → 100755
Empty file.
Empty file modified src/resources/lang/en/auth.php
100644 → 100755
Empty file.
Empty file modified src/resources/lang/en/pagination.php
100644 → 100755
Empty file.
Empty file modified src/resources/lang/en/passwords.php
100644 → 100755
Empty file.
Empty file modified src/resources/lang/en/validation.php
100644 → 100755
Empty file.
Empty file modified src/resources/views/welcome.blade.php
100644 → 100755
Empty file.
9 changes: 7 additions & 2 deletions src/routes/api.php
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?php

use App\Infrastructure\Controllers\GetCoinController;
use App\Infrastructure\Controllers\GetUserController;
use App\Infrastructure\Controllers\IsEarlyAdopterUserController;
use App\Infrastructure\Controllers\StatusController;
Expand All @@ -25,5 +26,9 @@
StatusController::class
);

Route::get('user/{email}', IsEarlyAdopterUserController::class);
Route::get('coin/status/{userId}', GetUserController::class);
Route::get('coin/status/{coin_id}', GetCoinController::class);
Route::post('coin/buy', GetUserController::class);
Route::post('coin/sell', GetUserController::class);
Route::post('wallet/open', GetUserController::class);
Route::get('wallet/{wallet_id}', GetUserController::class);
Route::get('wallet/{wallet_id}/balance', GetUserController::class);
Empty file modified src/routes/channels.php
100644 → 100755
Empty file.
Empty file modified src/routes/console.php
100644 → 100755
Empty file.
Empty file modified src/routes/web.php
100644 → 100755
Empty file.
Empty file modified src/server.php
100644 → 100755
Empty file.
Empty file modified src/storage/app/.gitignore
100644 → 100755
Empty file.
Empty file modified src/storage/app/public/.gitignore
100644 → 100755
Empty file.
Empty file modified src/storage/debugbar/.gitignore
100644 → 100755
Empty file.
Empty file modified src/storage/framework/.gitignore
100644 → 100755
Empty file.
Empty file modified src/storage/framework/cache/.gitignore
100644 → 100755
Empty file.
Empty file modified src/storage/framework/cache/data/.gitignore
100644 → 100755
Empty file.
Empty file modified src/storage/framework/sessions/.gitignore
100644 → 100755
Empty file.
Empty file modified src/storage/framework/testing/.gitignore
100644 → 100755
Empty file.
Empty file modified src/storage/framework/views/.gitignore
100644 → 100755
Empty file.
Empty file modified src/storage/logs/.gitignore
100644 → 100755
Empty file.
Loading