apply suggestions
continuous-integration/drone/push Build is failing Details

maxime.batista 1 year ago
parent 954f82fa91
commit 7536db9473

@ -3,6 +3,7 @@
// `dev-config-profile.php` by default. // `dev-config-profile.php` by default.
// on production server the included profile is `prod-config-profile.php`. // on production server the included profile is `prod-config-profile.php`.
// Please do not touch. // Please do not touch.
require /*PROFILE_FILE*/ "profiles/dev-config-profile.php"; require /*PROFILE_FILE*/ "profiles/dev-config-profile.php";
const SUPPORTS_FAST_REFRESH = _SUPPORTS_FAST_REFRESH; const SUPPORTS_FAST_REFRESH = _SUPPORTS_FAST_REFRESH;
@ -21,3 +22,9 @@ global $_data_source_name;
$data_source_name = $_data_source_name; $data_source_name = $_data_source_name;
const DATABASE_USER = _DATABASE_USER; const DATABASE_USER = _DATABASE_USER;
const DATABASE_PASSWORD = _DATABASE_PASSWORD; const DATABASE_PASSWORD = _DATABASE_PASSWORD;
function init_database(PDO $pdo): void {
_init_database($pdo);
}

@ -1,5 +1,9 @@
<?php <?php
use IQBall\Core\Connection;
use IQBall\Core\Gateway\AccountGateway;
use IQBall\Core\Model\AuthModel;
$hostname = getHostName(); $hostname = getHostName();
$front_url = "http://$hostname:5173"; $front_url = "http://$hostname:5173";
@ -14,3 +18,15 @@ function _asset(string $assetURI): string {
global $front_url; global $front_url;
return $front_url . "/" . $assetURI; return $front_url . "/" . $assetURI;
} }
function _init_database(PDO $pdo): void {
$accounts = new AccountGateway(new Connection($pdo));
$defaultAccounts = ["maxime", "mael", "yanis", "vivien"];
foreach ($defaultAccounts as $name) {
$email = "$name@mail.com";
$id = $accounts->insertAccount($name, $email, AuthModel::generateToken(), password_hash("123456", PASSWORD_DEFAULT), "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png");
$accounts->setIsAdmin($id, true);
}
}

@ -20,3 +20,6 @@ function _asset(string $assetURI): string {
// fallback to the uri itself. // fallback to the uri itself.
return $basePath . "/" . (ASSETS[$assetURI] ?? $assetURI); return $basePath . "/" . (ASSETS[$assetURI] ?? $assetURI);
} }
function _init_database(PDO $pdo): void {}

@ -1,9 +1,5 @@
<?php <?php
use IQBall\Core\Connection;
use IQBall\Core\Gateway\AccountGateway;
use IQBall\Core\Model\AuthModel;
/** /**
* @return PDO The PDO instance of the configuration's database connexion. * @return PDO The PDO instance of the configuration's database connexion.
*/ */
@ -31,15 +27,3 @@ function get_database(): PDO {
return $pdo; return $pdo;
} }
function init_database(PDO $pdo): void {
$accounts = new AccountGateway(new Connection($pdo));
$defaultAccounts = ["maxime", "mael", "yanis", "vivien"];
foreach ($defaultAccounts as $name) {
$email = "$name@mail.com";
$id = $accounts->insertAccount($name, $email, AuthModel::generateToken(), password_hash("123456", PASSWORD_DEFAULT), "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png");
$accounts->setIsAdmin($id, true);
}
}

@ -35,7 +35,7 @@ class APIAccountsController {
public function listUsers(array $request): HttpResponse { public function listUsers(array $request): HttpResponse {
return APIControl::runCheckedFrom($request, [ return APIControl::runCheckedFrom($request, [
'start' => [DefaultValidators::isUnsignedInteger()], 'start' => [DefaultValidators::isUnsignedInteger()],
'n' => [DefaultValidators::isUnsignedInteger()], 'n' => [DefaultValidators::isIntInRange(0, 250)],
'search' => [DefaultValidators::lenBetween(0, 256)], 'search' => [DefaultValidators::lenBetween(0, 256)],
], function (HttpRequest $req) { ], function (HttpRequest $req) {
$accounts = $this->accounts->searchAccounts(intval($req['start']), intval($req['n']), $req["search"]); $accounts = $this->accounts->searchAccounts(intval($req['start']), intval($req['n']), $req["search"]);

@ -145,7 +145,7 @@ class AccountGateway {
* @param int $start starting index of the list content * @param int $start starting index of the list content
* @return Account[]|null * @return Account[]|null
*/ */
public function searchAccounts(int $start, int $n, ?string $searchString): ?array { public function searchAccounts(int $start, int $n, ?string $searchString): array {
$res = $this->con->fetch( $res = $this->con->fetch(
"SELECT * FROM Account WHERE username LIKE '%' || :search || '%' OR email LIKE '%' || :search || '%' ORDER BY username, email LIMIT :offset, :n", "SELECT * FROM Account WHERE username LIKE '%' || :search || '%' OR email LIKE '%' || :search || '%' ORDER BY username, email LIMIT :offset, :n",
[ [

@ -68,9 +68,9 @@ class TacticModel {
* NOTE: if given user id does not match any user, this function returns an empty array * NOTE: if given user id does not match any user, this function returns an empty array
* *
* @param integer $user_id * @param integer $user_id
* @return TacticInfo[] | null * @return TacticInfo[]
*/ */
public function listAllOf(int $user_id): ?array { public function listAllOf(int $user_id): array {
return$this->tactics->listAllOf($user_id); return$this->tactics->listAllOf($user_id);
} }

@ -72,7 +72,7 @@ class DefaultValidators {
public static function isInteger(): Validator { public static function isInteger(): Validator {
return self::regex("/^-[0-9]+$/", "field is not an integer"); return self::regex("/^[-+]?[0-9]+$/", "field is not an integer");
} }
public static function isUnsignedInteger(): Validator { public static function isUnsignedInteger(): Validator {
@ -135,10 +135,8 @@ class DefaultValidators {
public function validate(string $name, $val): array { public function validate(string $name, $val): array {
$failures = []; $failures = [];
$idx = 0; foreach ($val as $idx => $item) {
foreach ($val as $item) {
$failures = array_merge($failures, $this->validator->validate($name . "[$idx]", $item)); $failures = array_merge($failures, $this->validator->validate($name . "[$idx]", $item));
$idx += 1;
} }
return $failures; return $failures;

Loading…
Cancel
Save