Test Connection
Add Todo Bot use Webservice now TBD : Rework Event
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using LaDOSE.DTO;
|
||||
using LaDOSE.REST.Event;
|
||||
using RestSharp;
|
||||
using RestSharp.Authenticators;
|
||||
using RestSharp.Serialization.Json;
|
||||
@@ -9,23 +10,43 @@ namespace LaDOSE.REST
|
||||
{
|
||||
public class RestService
|
||||
{
|
||||
private string username { get; set; }
|
||||
private string password { get; set; }
|
||||
|
||||
private ApplicationUserDTO Auth { get; set; }
|
||||
|
||||
public string UserName => Auth?.FirstName;
|
||||
|
||||
public DateTime ValidUntil => Auth.Expire;
|
||||
//private ApplicationUserDTO token = null;
|
||||
public RestClient Client { get; set; }
|
||||
|
||||
public event EventHandler<UpdatedJwtEventHandler> UpdatedJwtEvent;
|
||||
|
||||
public RestService() { }
|
||||
|
||||
|
||||
public void Connect(Uri url, string user, string password)
|
||||
{
|
||||
Client = new RestClient(url);
|
||||
this.username = user;
|
||||
this.password = password;
|
||||
GetToken(user, password);
|
||||
}
|
||||
|
||||
private void GetToken(string user, string password)
|
||||
{
|
||||
var restRequest = new RestRequest("users/auth", Method.POST);
|
||||
restRequest.AddJsonBody(new {username = user, password = password});
|
||||
|
||||
var response = Client.Post(restRequest);
|
||||
if (response.IsSuccessful)
|
||||
{
|
||||
JsonDeserializer d = new JsonDeserializer();
|
||||
var applicationUser = d.Deserialize<ApplicationUser>(response);
|
||||
var applicationUser = d.Deserialize<ApplicationUserDTO>(response);
|
||||
this.Auth = applicationUser;
|
||||
Client.Authenticator = new JwtAuthenticator($"{applicationUser.Token}");
|
||||
RaiseUpdatedJwtEvent(new UpdatedJwtEventHandler(this.Auth));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -33,6 +54,23 @@ namespace LaDOSE.REST
|
||||
}
|
||||
}
|
||||
|
||||
private void RaiseUpdatedJwtEvent(UpdatedJwtEventHandler auth)
|
||||
{
|
||||
EventHandler<UpdatedJwtEventHandler> handler = UpdatedJwtEvent;
|
||||
|
||||
handler?.Invoke(this, auth);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void CheckToken()
|
||||
{
|
||||
if (this.Auth.Expire <= DateTime.Now)
|
||||
{
|
||||
GetToken(this.username,this.password);
|
||||
}
|
||||
}
|
||||
|
||||
#region PostFix
|
||||
|
||||
private T Post<T>(string resource,T entity)
|
||||
@@ -91,32 +129,43 @@ namespace LaDOSE.REST
|
||||
#region WordPress
|
||||
public List<WPEventDTO> GetEvents()
|
||||
{
|
||||
CheckToken();
|
||||
var restRequest = new RestRequest("/api/wordpress/WPEvent", Method.GET);
|
||||
var restResponse = Client.Get<List<WPEventDTO>>(restRequest);
|
||||
return restResponse.Data;
|
||||
}
|
||||
public WPEventDTO GetNextEvent()
|
||||
{
|
||||
CheckToken();
|
||||
var restRequest = new RestRequest("/api/wordpress/NextEvent", Method.GET);
|
||||
var restResponse = Client.Get<WPEventDTO>(restRequest);
|
||||
return restResponse.Data;
|
||||
}
|
||||
|
||||
|
||||
public string GetLastChallonge()
|
||||
{
|
||||
CheckToken();
|
||||
var restRequest = new RestRequest($"/api/wordpress/GetLastChallonge/", Method.GET);
|
||||
var restResponse = Client.Get(restRequest);
|
||||
return restResponse.Content;
|
||||
}
|
||||
public string CreateChallonge(int gameId, int eventId)
|
||||
{
|
||||
CheckToken();
|
||||
var restRequest = new RestRequest($"/api/wordpress/CreateChallonge/{gameId}/{eventId}", Method.GET);
|
||||
var restResponse = Client.Get(restRequest);
|
||||
return restResponse.Content;
|
||||
}
|
||||
public string CreateChallonge2(int gameId, int eventId, List<WPUserDTO> optionalPlayers)
|
||||
{
|
||||
|
||||
CheckToken();
|
||||
var restResponse = Post<List<WPUserDTO>,string>($"/api/wordpress/CreateChallonge/{gameId}/{eventId}",optionalPlayers);
|
||||
return restResponse;
|
||||
}
|
||||
public bool RefreshDb()
|
||||
{
|
||||
CheckToken();
|
||||
var restRequest = new RestRequest("/api/Wordpress/UpdateDb", Method.GET);
|
||||
var restResponse = Client.Get<bool>(restRequest);
|
||||
return restResponse.Data;
|
||||
@@ -124,6 +173,7 @@ namespace LaDOSE.REST
|
||||
|
||||
public List<WPUserDTO> GetUsers(int wpEventId, int gameId)
|
||||
{
|
||||
CheckToken();
|
||||
var restRequest = new RestRequest($"/api/Wordpress/GetUsers/{wpEventId}/{gameId}", Method.GET);
|
||||
var restResponse = Client.Get<List<WPUserDTO>>(restRequest);
|
||||
return restResponse.Data;
|
||||
@@ -131,6 +181,7 @@ namespace LaDOSE.REST
|
||||
|
||||
public List<WPUserDTO> GetUsersOptions(int wpEventId, int gameId)
|
||||
{
|
||||
CheckToken();
|
||||
var restRequest = new RestRequest($"/api/Wordpress/GetUsersOptions/{wpEventId}/{gameId}", Method.GET);
|
||||
var restResponse = Client.Get<List<WPUserDTO>>(restRequest);
|
||||
return restResponse.Data;
|
||||
@@ -142,6 +193,7 @@ namespace LaDOSE.REST
|
||||
#region Games
|
||||
public List<GameDTO> GetGames()
|
||||
{
|
||||
CheckToken();
|
||||
var restRequest = new RestRequest("/api/Game", Method.GET);
|
||||
var restResponse = Client.Get<List<GameDTO>>(restRequest);
|
||||
return restResponse.Data;
|
||||
@@ -149,10 +201,12 @@ namespace LaDOSE.REST
|
||||
|
||||
public GameDTO UpdateGame(GameDTO game)
|
||||
{
|
||||
CheckToken();
|
||||
return Post("Api/Game", game);
|
||||
}
|
||||
public bool DeleteGame(int gameId)
|
||||
{
|
||||
CheckToken();
|
||||
var restRequest = new RestRequest($"/api/Game/{gameId}", Method.DELETE);
|
||||
var restResponse = Client.Execute(restRequest);
|
||||
return restResponse.IsSuccessful;
|
||||
@@ -164,7 +218,37 @@ namespace LaDOSE.REST
|
||||
|
||||
#endregion
|
||||
|
||||
#region Todo
|
||||
|
||||
public List<TodoDTO> GetTodos()
|
||||
{
|
||||
CheckToken();
|
||||
var restRequest = new RestRequest("/api/Todo", Method.GET);
|
||||
var restResponse = Client.Get<List<TodoDTO>>(restRequest);
|
||||
return restResponse.Data;
|
||||
}
|
||||
public TodoDTO GetTodoById(int id)
|
||||
{
|
||||
CheckToken();
|
||||
var restRequest = new RestRequest($"/api/Todo/{id}", Method.GET);
|
||||
var restResponse = Client.Get<TodoDTO>(restRequest);
|
||||
return restResponse.Data;
|
||||
}
|
||||
public TodoDTO UpdateTodo(TodoDTO Todo)
|
||||
{
|
||||
CheckToken();
|
||||
return Post("Api/Todo", Todo);
|
||||
}
|
||||
public bool DeleteTodo(int todoId)
|
||||
{
|
||||
CheckToken();
|
||||
var restRequest = new RestRequest($"/api/Todo/{todoId}", Method.DELETE);
|
||||
var restResponse = Client.Execute(restRequest);
|
||||
return restResponse.IsSuccessful;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user