API Compte OK
continuous-integration/drone/push Build is failing Details

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/Banque.php';
require __DIR__.'/../routes/Compte.php';
$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 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
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
public bool AjouterCompte(Compte compte)
public bool AjouterCompte(Compte compte, Inscrit inscrit)
{
throw new NotImplementedException();
}
public bool SupprimerCompte(Compte compte)
public bool SupprimerCompte(Compte compte, Inscrit inscrit)
{
throw new NotImplementedException();
}
public bool ModifierCompte(Compte compte)
{
throw new NotImplementedException();
}
public IList<Compte> RecupererCompte(Banque banque)
public IList<Compte> RecupererCompte(Banque banque, Inscrit inscrit)
{
throw new NotImplementedException();
}

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

@ -6,7 +6,7 @@ namespace IHM
{
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()
{
InitializeComponent();

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

@ -20,7 +20,7 @@ public partial class ForgetPassword : ContentPage
{
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();
code = generator.Next(0, 1000000).ToString("D6");
@ -28,7 +28,7 @@ public partial class ForgetPassword : ContentPage
ValidateReceptCode.IsVisible = true;
ConnexionButton.IsEnabled = false;
UpdateArc();
}
}*/
}
private async void AffichError(string s, string s1, string s2)
{

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

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

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

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

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

@ -20,7 +20,7 @@ public partial class ForgetPassword : ContentPage
{
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();
code = generator.Next(0, 1000000).ToString("D6");
Email.CreateMail(EntryMail.Text, code);
@ -31,7 +31,7 @@ public partial class ForgetPassword : ContentPage
else
{
AffichError("Mail inexistant", "Aucun compte possédant cette adresse email trouvé", "OK");
}
}*/
}
private async void AffichError(string s, string s1, string s2)
{

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

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

@ -1,4 +1,5 @@
using System.ComponentModel;
using Newtonsoft.Json;
using System.ComponentModel;
namespace Model
{
@ -24,13 +25,19 @@ namespace Model
private List<Operation> lesOpe = new List<Operation>();
public List<Planification> LesPla { get; set; } = new List<Planification>();
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;
Nom = nom;
Solde = solde;
Solde = 0;
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()
{
LesOpe = lesOpe;
@ -108,7 +115,7 @@ namespace Model
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
bool AjouterCompte(Compte compte);
bool SupprimerCompte(Compte compte);
bool ModifierCompte(Compte compte);
IList<Compte> RecupererCompte(Banque banque);
bool AjouterCompte(Compte compte, Inscrit inscrit);
bool SupprimerCompte(Compte compte, Inscrit inscrit);
IList<Compte> RecupererCompte(Banque banque, Inscrit inscrit);
//actions sur les Opérations

@ -115,4 +115,36 @@ banquesId1 = ClientAPI.GetBanqueAsync("1").GetAwaiter().GetResult();
foreach (Banque b in banquesId1)
{
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 System;
using System.Collections.Generic;
@ -13,7 +14,7 @@ namespace TestsUnitaires
[Fact]
public void testLoadInscrit()
{
Manager m = new Manager(new PersLinqToPgSQL());
Manager m = new Manager(new PersAPI());
//Assert.Null(m.SelectedBanque);
//m.LoadInscrit("lucasevard@gmail.com", "test");
//Assert.Equal(m.SelectedInscrits, "00001");

Loading…
Cancel
Save