API Compte OK

pull/138/head
Hugo LIVET 2 years ago
parent 74d30d2522
commit 4e150819bc

@ -16,6 +16,7 @@ $app->get('/', function (Request $request, Response $response, $args) {
require __DIR__.'/../routes/Inscrit.php'; require __DIR__.'/../routes/Inscrit.php';
require __DIR__.'/../routes/Banque.php'; require __DIR__.'/../routes/Banque.php';
require __DIR__.'/../routes/Compte.php';
$app->run(); $app->run();
?> ?>

@ -0,0 +1,116 @@
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
use OpenApi\Annotations as OA;
/**
* @OA\Info(title="My First API", version="0.1")
*/
$app->addBodyParsingMiddleware();
$app->addRoutingMiddleware();
$app->addErrorMiddleware(true, true, true);
/**
* @OA\Get(path="/api/Compte",
* @OA\Response(response="200", description="Succes")
* @OA\Response(response="500", description="Bdd Error")
* )
*/
$app->post('/Compte/FromIdInscrit/', function(Request $request, Response $response,array $args){
$idInscrit = $request->getParsedBody()["id"];
$query = 'SELECT * FROM Compte WHERE idInscritBanque=:id';
try{
$db = new Database();
$conn = $db->connect();
$stmt = $conn->prepare($query);
$stmt->bindValue(':id', $idInscrit, PDO::PARAM_STR);
$stmt->execute();
$compte = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
$response->getBody()->write(json_encode($compte));
return $response
->withHeader('content-type', 'application/json')
->withStatus(200);
} catch(PDOException $e){
$error = array("message" => $e->getMessage());
$response->getBody()->write(json_encode($error));
return $response
->withHeader('content-type', 'application/json')
->withStatus(500);
}
});
$app->post('/Compte/add/', function(Request $request, Response $response, array $args){
$nom = $request->getParsedBody()["nom"];
$idInscrit = $request->getParsedBody()["idInscrit"];
$query = "INSERT INTO Compte (nom, idInscritBanque) VALUES (:nom, :idI)";
try{
$db = new Database();
$conn = $db->connect();
$stmt = $conn->prepare($query);
$stmt->bindValue(':nom', $nom, PDO::PARAM_STR);
$stmt->bindValue(':idI', $idInscrit, PDO::PARAM_STR);
$result = $stmt->execute();
$db = null;
$response->getBody()->write(json_encode($result));
return $response
->withHeader('content-type', 'application/json')
->withStatus(200);
} catch(PDOException $e){
$error = array("message" => $e->getMessage());
$response->getBody()->write(json_encode($error));
return $response
->withHeader('content-type', 'application/json')
->withStatus(500);
}
});
$app->delete('/Compte/delete/', function (Request $request, Response $response, array $args) {
$nom = $request->getParsedBody()["nom"];
$idInscrit = $request->getParsedBody()["idInscrit"];
$query = "DELETE FROM Compte WHERE nom=:nom AND idInscritBanque=:idI";
try{
$db = new Database();
$conn = $db->connect();
$stmt = $conn->prepare($query);
$stmt->bindValue(':nom', $nom, PDO::PARAM_STR);
$stmt->bindValue(':idI', $idInscrit, PDO::PARAM_STR);
$result = $stmt->execute();
$db = null;
$response->getBody()->write(json_encode($result));
return $response
->withHeader('content-type', 'application/json')
->withStatus(200);
} catch(PDOException $e){
$error = array("message" => $e->getMessage());
$response->getBody()->write(json_encode($error));
return $response
->withHeader('content-type', 'application/json')
->withStatus(500);
}
});
?>

@ -30,12 +30,15 @@ namespace Data
private const string POST_ADD_BANQUE_INSCRIT_DATA_URL = ROOT_URL + "Banque/add/"; private const string POST_ADD_BANQUE_INSCRIT_DATA_URL = ROOT_URL + "Banque/add/";
private const string DELETE_BANQUE_INSCRIT_DATA_URL = ROOT_URL + "Banque/delete/"; private const string DELETE_BANQUE_INSCRIT_DATA_URL = ROOT_URL + "Banque/delete/";
//add all routes //routes compte
private const string POST_COMPTE_INSCRIT_DATA_URL = ROOT_URL + "Compte/FromIdInscrit/";
private const string POST_ADD_COMPTE_INSCRIT_DATA_URL = ROOT_URL + "Compte/add/";
private const string DELETE_COMPTE_INSCRIT_DATA_URL = ROOT_URL + "Compte/delete/";
private static HttpClient cli = new HttpClient();
//add all routes
private static HttpClient cli = new HttpClient();
//Inscrit //Inscrit
public static async Task<List<Inscrit>> GetInscritsAsync() public static async Task<List<Inscrit>> GetInscritsAsync()
@ -193,5 +196,62 @@ namespace Data
} }
//Comptes
public static async Task<List<Compte>> GetCompteAsync(string id)
{
var dataBody = new Dictionary<string, string> { { "id", id } };
HttpResponseMessage reponse = await cli.PostAsJsonAsync(POST_COMPTE_INSCRIT_DATA_URL, dataBody);
if (reponse.IsSuccessStatusCode)
{
return JsonConvert.DeserializeObject<List<Compte>>(await reponse.Content.ReadAsStringAsync());
}
else
{
throw new HttpRequestException(reponse.StatusCode.ToString());
}
}
public static async Task<bool> PostAddCompteInscritAsync(string nomCompte, string idInscrit)
{
var dataBody = new Dictionary<string, string> { { "nom", nomCompte }, { "idInscrit", idInscrit } };
HttpResponseMessage reponse = await cli.PostAsJsonAsync(POST_ADD_COMPTE_INSCRIT_DATA_URL, dataBody);
if (reponse.IsSuccessStatusCode)
{
return true;
}
else
{
throw new HttpRequestException(reponse.StatusCode.ToString());
}
}
public static async Task<bool> DeleteCompteInscritAsync(string nomCompte, string idInscrit)
{
var dataBody = new Dictionary<string, string> { { "nom", nomCompte }, { "idInscrit", idInscrit } };
var reponse =
cli.SendAsync(
new HttpRequestMessage(HttpMethod.Delete, DELETE_COMPTE_INSCRIT_DATA_URL)
{
Content = new FormUrlEncodedContent(dataBody)
})
.Result;
if (reponse.IsSuccessStatusCode)
{
return true;
}
else
{
throw new HttpRequestException(reponse.StatusCode.ToString());
}
}
} }
} }

@ -65,19 +65,15 @@ namespace Data
//actions sur les comptes //actions sur les comptes
public bool AjouterCompte(Compte compte) public bool AjouterCompte(Compte compte, Inscrit inscrit)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
public bool SupprimerCompte(Compte compte) public bool SupprimerCompte(Compte compte, Inscrit inscrit)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
public bool ModifierCompte(Compte compte) public IList<Compte> RecupererCompte(Banque banque, Inscrit inscrit)
{
throw new NotImplementedException();
}
public IList<Compte> RecupererCompte(Banque banque)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

@ -111,19 +111,15 @@ namespace Data
//actions sur les comptes //actions sur les comptes
public bool AjouterCompte(Compte compte) public bool AjouterCompte(Compte compte, Inscrit inscrit)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
public bool SupprimerCompte(Compte compte) public bool SupprimerCompte(Compte compte, Inscrit inscrit)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
public bool ModifierCompte(Compte compte) public IList<Compte> RecupererCompte(Banque banque, Inscrit inscrit)
{
throw new NotImplementedException();
}
public IList<Compte> RecupererCompte(Banque banque)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

@ -6,7 +6,7 @@ namespace IHM
{ {
public partial class App : Application public partial class App : Application
{ {
public Manager Manager { get; set; } = new Manager(new Stub()); public Manager Manager { get; set; } = new Manager(new PersAPI());
public App() public App()
{ {
InitializeComponent(); InitializeComponent();

@ -26,7 +26,7 @@ public partial class ChangePassword : ContentPage
} }
else else
{ {
Mgr.changePasswordBdd(MailUser, EntryNewMdp.Text); //Mgr.changePasswordBdd(MailUser, EntryNewMdp.Text);
AffichError("mdp changé", "mot de passe bien changé", "ok"); AffichError("mdp changé", "mot de passe bien changé", "ok");
NavigateTo("../.."); NavigateTo("../..");
} }

@ -20,7 +20,7 @@ public partial class ForgetPassword : ContentPage
{ {
AffichError("Email inconnue", "Aucun compte existant portant cette adresse mail", "OK"); AffichError("Email inconnue", "Aucun compte existant portant cette adresse mail", "OK");
} }
if (Mgr.existEmail(EntryMail.Text)) /*if (Mgr.existEmail(EntryMail.Text))
{ {
Random generator = new Random(); Random generator = new Random();
code = generator.Next(0, 1000000).ToString("D6"); code = generator.Next(0, 1000000).ToString("D6");
@ -28,7 +28,7 @@ public partial class ForgetPassword : ContentPage
ValidateReceptCode.IsVisible = true; ValidateReceptCode.IsVisible = true;
ConnexionButton.IsEnabled = false; ConnexionButton.IsEnabled = false;
UpdateArc(); UpdateArc();
} }*/
} }
private async void AffichError(string s, string s1, string s2) private async void AffichError(string s, string s1, string s2)
{ {

@ -20,7 +20,7 @@ public partial class MainPage : ContentPage
} }
else else
{ {
if (Mgr.existEmail(EntryMail.Text)) /*if (Mgr.existEmail(EntryMail.Text))
{ {
if (Mgr.isEqualHash(Mgr.recupMdpBdd(EntryMail.Text), EntryPassworld.Text)) if (Mgr.isEqualHash(Mgr.recupMdpBdd(EntryMail.Text), EntryPassworld.Text))
{ {
@ -35,7 +35,7 @@ public partial class MainPage : ContentPage
else else
{ {
AffichError("Compte inexistant", "Email ou mot de passe invalide", "OK"); AffichError("Compte inexistant", "Email ou mot de passe invalide", "OK");
} }*/
} }
} }

@ -11,7 +11,7 @@ public partial class AjoutBanques : ContentPage
{ {
InitializeComponent(); InitializeComponent();
BindingContext = Mgr; BindingContext = Mgr;
Mgr.importBanques(); //Mgr.importBanques();
if (OperatingSystem.IsIOS()) if (OperatingSystem.IsIOS())
{ {
boutonRetour.IsVisible = true; boutonRetour.IsVisible = true;
@ -29,12 +29,12 @@ public partial class AjoutBanques : ContentPage
{ {
if (result.FileName.EndsWith("ofx", StringComparison.OrdinalIgnoreCase)) if (result.FileName.EndsWith("ofx", StringComparison.OrdinalIgnoreCase))
{ {
IList<Compte> lesComptes = Mgr.getCompteFromOFX(result.FullPath); //IList<Compte> lesComptes = Mgr.getCompteFromOFX(result.FullPath);
Debug.WriteLine(lesComptes.Count); /*Debug.WriteLine(lesComptes.Count);
foreach(Compte compte in lesComptes) foreach(Compte compte in lesComptes)
{ {
Mgr.User.LesBanques.First().AjouterCompte(compte); Mgr.User.LesBanques.First().AjouterCompte(compte);
} }*/
} }
} }

@ -25,7 +25,7 @@ public partial class ChangePassword : ContentPage
} }
else else
{ {
Mgr.changePasswordBdd(MailUser, EntryNewMdp.Text); //Mgr.changePasswordBdd(MailUser, EntryNewMdp.Text);
AffichError("mdp changé", "mot de passe bien changé", "ok"); AffichError("mdp changé", "mot de passe bien changé", "ok");
NavigateTo("../.."); NavigateTo("../..");
} }

@ -17,11 +17,11 @@ public partial class DashBoard : ContentPage
} }
if (!Mgr.testConnexionAsDatabase()) /* if (!Mgr.testConnexionAsDatabase())
{ {
loadPage(new ErrorPage()); loadPage(new ErrorPage());
} }*/
} }

@ -22,10 +22,10 @@ public partial class ErrorPage : ContentPage
public void conIsActive() public void conIsActive()
{ {
while (!Mgr.testConnexionAsDatabase()) /*while (!Mgr.testConnexionAsDatabase())
{ {
Thread.Sleep(TIME_TEST_DB); Thread.Sleep(TIME_TEST_DB);
} }*/
ConnexionValide(); ConnexionValide();
return; return;

@ -20,7 +20,7 @@ public partial class ForgetPassword : ContentPage
{ {
AffichError("Email inconnue", "Aucun compte existant portant cette adresse mail", "OK"); AffichError("Email inconnue", "Aucun compte existant portant cette adresse mail", "OK");
} }
if (Mgr.existEmail(EntryMail.Text)){ /*if (Mgr.existEmail(EntryMail.Text)){
Random generator = new Random(); Random generator = new Random();
code = generator.Next(0, 1000000).ToString("D6"); code = generator.Next(0, 1000000).ToString("D6");
Email.CreateMail(EntryMail.Text, code); Email.CreateMail(EntryMail.Text, code);
@ -31,7 +31,7 @@ public partial class ForgetPassword : ContentPage
else else
{ {
AffichError("Mail inexistant", "Aucun compte possédant cette adresse email trouvé", "OK"); AffichError("Mail inexistant", "Aucun compte possédant cette adresse email trouvé", "OK");
} }*/
} }
private async void AffichError(string s, string s1, string s2) private async void AffichError(string s, string s1, string s2)
{ {

@ -11,7 +11,7 @@ public partial class GestionBanques : ContentPage
{ {
InitializeComponent(); InitializeComponent();
BindingContext= Mgr; BindingContext= Mgr;
Mgr.LoadBanques(); //Mgr.LoadBanques();
if (OperatingSystem.IsIOS()) if (OperatingSystem.IsIOS())
{ {
boutonRetour.IsVisible = true; boutonRetour.IsVisible = true;

@ -21,7 +21,7 @@ namespace IHM.Mobile
AffichError("Champ invalide", "Veuillez compléter tout les champs", "OK"); AffichError("Champ invalide", "Veuillez compléter tout les champs", "OK");
} }
else { else {
if (Mgr.existEmail(EntryMail.Text)) /* if (Mgr.existEmail(EntryMail.Text))
{ {
if (Mgr.isEqualHash(Mgr.recupMdpBdd(EntryMail.Text), EntryPassworld.Text)) if (Mgr.isEqualHash(Mgr.recupMdpBdd(EntryMail.Text), EntryPassworld.Text))
{ {
@ -36,13 +36,13 @@ namespace IHM.Mobile
else else
{ {
AffichError("Compte inexistant", "Email ou mot de passe invalide", "OK"); AffichError("Compte inexistant", "Email ou mot de passe invalide", "OK");
} }*/
} }
} }
private async void ConnexionValide() private async void ConnexionValide()
{ {
Mgr.LoadBanques(); //Mgr.LoadBanques();
await Navigation.PopModalAsync(); await Navigation.PopModalAsync();
} }

@ -1,4 +1,5 @@
using System.ComponentModel; using Newtonsoft.Json;
using System.ComponentModel;
namespace Model namespace Model
{ {
@ -24,13 +25,19 @@ namespace Model
private List<Operation> lesOpe = new List<Operation>(); private List<Operation> lesOpe = new List<Operation>();
public List<Planification> LesPla { get; set; } = new List<Planification>(); public List<Planification> LesPla { get; set; } = new List<Planification>();
public List<Echeance> LesEch { get; set; } = new List<Echeance>(); public List<Echeance> LesEch { get; set; } = new List<Echeance>();
public Compte(string id,string nom, double solde)
[JsonConstructor]
public Compte(string id, string nom)
{ {
Identifiant = id; Identifiant = id;
Nom = nom; Nom = nom;
Solde = solde; Solde = 0;
DerniereModification = DateTime.Now; DerniereModification = DateTime.Now;
} }
public Compte(string id,string nom, double solde) : base()
{
Solde = solde;
}
public Compte(string id, string nom, double solde, List<Operation> lesOpe) : base() public Compte(string id, string nom, double solde, List<Operation> lesOpe) : base()
{ {
LesOpe = lesOpe; LesOpe = lesOpe;
@ -108,7 +115,7 @@ namespace Model
public override string ToString() public override string ToString()
{ {
return Identifiant + " " + Nom + " " + Solde + " " + DerniereModification + "\n"; return Identifiant + " " + Nom + " " + Solde + " " + DerniereModification;
} }
} }

@ -27,10 +27,9 @@ namespace Model
//actions sur les comptes //actions sur les comptes
bool AjouterCompte(Compte compte); bool AjouterCompte(Compte compte, Inscrit inscrit);
bool SupprimerCompte(Compte compte); bool SupprimerCompte(Compte compte, Inscrit inscrit);
bool ModifierCompte(Compte compte); IList<Compte> RecupererCompte(Banque banque, Inscrit inscrit);
IList<Compte> RecupererCompte(Banque banque);
//actions sur les Opérations //actions sur les Opérations

@ -116,3 +116,35 @@ foreach (Banque b in banquesId1)
{ {
Console.WriteLine(b); Console.WriteLine(b);
} }
Console.WriteLine("\n\n\n----Comptes----\n");
IList<Compte> comptes = ClientAPI.GetCompteAsync("1").GetAwaiter().GetResult();
foreach (Compte c in comptes)
{
Console.WriteLine(c);
}
Console.WriteLine("\n----Modifs----\n");
bool rrrrrrr = ClientAPI.PostAddCompteInscritAsync("PEL","1").GetAwaiter().GetResult();
Console.WriteLine("Add Compte for user : " + rrrrrrr + "\n");
Console.WriteLine("\n----Verif----\n");
comptes = ClientAPI.GetCompteAsync("1").GetAwaiter().GetResult();
foreach (Compte c in comptes)
{
Console.WriteLine(c);
}
rrrrrrr = ClientAPI.DeleteCompteInscritAsync("PEL", "1").GetAwaiter().GetResult();
Console.WriteLine("Del Compte for user : " + rrrrrrr + "\n");
Console.WriteLine("\n----Verif----\n");
comptes = ClientAPI.GetCompteAsync("1").GetAwaiter().GetResult();
foreach (Compte c in comptes)
{
Console.WriteLine(c);
}

@ -1,4 +1,5 @@
using LinqToPgSQL; using Data;
using LinqToPgSQL;
using Model; using Model;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -13,7 +14,7 @@ namespace TestsUnitaires
[Fact] [Fact]
public void testLoadInscrit() public void testLoadInscrit()
{ {
Manager m = new Manager(new PersLinqToPgSQL()); Manager m = new Manager(new PersAPI());
//Assert.Null(m.SelectedBanque); //Assert.Null(m.SelectedBanque);
//m.LoadInscrit("lucasevard@gmail.com", "test"); //m.LoadInscrit("lucasevard@gmail.com", "test");
//Assert.Equal(m.SelectedInscrits, "00001"); //Assert.Equal(m.SelectedInscrits, "00001");

Loading…
Cancel
Save