WIP
continuous-integration/drone/push Build is failing Details

d_yanis 1 year ago
parent ad94eef630
commit b20a78e5dd

@ -20,4 +20,4 @@ function asset(string $assetURI): string {
global $_data_source_name;
$data_source_name = $_data_source_name;
const DATABASE_USER = _DATABASE_USER;
const DATABASE_PASSWORD = _DATABASE_PASSWORD;
const DATABASE_PASSWORD = _DATABASE_PASSWORD;

@ -4,38 +4,38 @@ import {Header} from './template/Header'
import { useState, ChangeEvent } from "react"
import { User } from "./model/User"
export default function Settings({username} : {username : string}){
export default function Settings({user} : {user : User}){
return (
<div id="main">
<Header username={username} />
<Body/>
<Header username={user.name} />
<Body user={user}/>
</div>
)
}
function Body() {
function Body({user} : {user : User}) {
return (
<div id="body">
<div id="content">
<MainTitle title="Paramètres" id={null}/>
<AccountSettings/>
<AccountSettings user={user}/>
</div>
</div>
)
}
function AccountSettings(){
function AccountSettings({user} : {user : User}){
return (
<div id="account">
<SecondTitle title="Compte personnel" id={null}/>
<ContentAccountSettings/>
<ContentAccountSettings user={user}/>
</div>
);
}
function ContentAccountSettings({user} : {user : User}) {
// Utilisez useState pour gérer l'état du champ de saisie
const [username, setUsername] = useState({user.username});
const [username, setUsername] = useState(user.name);
// Fonction pour mettre à jour l'état lorsqu'il y a un changement dans le champ de saisie
const handleUsernameChange = (event : ChangeEvent<HTMLInputElement>) => {

@ -32,7 +32,7 @@ function getRoutes(): AltoRouter {
$router->map("POST", "/auth", Action::noAuth(fn() => getAuthController()->authorize()));
$router->map("POST", "/tactic/[i:id]/edit/name", Action::auth(fn(int $id, Account $acc) => getTacticController()->updateName($id, $acc)));
$router->map("POST", "/tactic/[i:id]/save", Action::auth(fn(int $id, Account $acc) => getTacticController()->saveContent($id, $acc)));
$router->map("POST", "/user/username/[name]", Action::auth(fn(string $username, Account $acc) => getUserController()->))
return $router;
}

@ -0,0 +1,20 @@
<?php
namespace IQBall\Api\Controller;
use IQBall\Core\Model\AuthModel;
use IQBall\Core\Data\Account;
class APIUserController {
private AuthModel $model;
public function __construct(AuthModel $model) {
$this->model = $model;
}
public function changeUsername(Account $acc, string $newUsername,) {
$this->model->changeUsername($acc->getUser()->getId(), $newUsername);
}
}
?>

@ -54,7 +54,9 @@ class UserController {
* @return ViewHttpResponse account settings page
*/
public function settings(SessionHandle $session): ViewHttpResponse {
return ViewHttpResponse::react("views/Settings.tsx", []);
return ViewHttpResponse::react("views/Settings.tsx", [
"user" => $session->getAccount()->getUser()
]);
}
public function disconnect(MutableSessionHandle $session): HttpResponse {

@ -82,5 +82,9 @@ class AccountGateway {
return new Account($acc["token"], new User($acc["email"], $acc["username"], $acc["id"], $acc["profilePicture"]));
}
public function changeUsername(int $id, string $username) {
$this->con->exec("UPDATE Account SET username = :username WHERE id = :id", [":username" => [$username, PDO::PARAM_STR], ":id" => [$id, PDO::PARAM_INT]]);
}
}

@ -74,4 +74,8 @@ class AuthModel {
return $this->gateway->getAccountFromMail($email);
}
public function changeUsername(int $id, string $newUsername) {
$this->gateway->changeUsername($id, $newUsername);
}
}

Loading…
Cancel
Save