Communication

La communication avec Manager se fait via SocketService et RestAPiService.

Socket

Le socket permet une communication bi-directionnelle entre vous et Manager.
Il permet à Manager de vous informer en temps réèl des évènements qui se déroulent dans son éxècution.

La moindre déconnection subite du socket remet à zéro toutes les machines à état de Fever.

RestApi

L'api Rest vous permet d'envoyer des ordres à Manager sous formes de requêtes HTTP (GET, POST, DELETE)

Liaison au WebSocket

La liaison au socket se fait via l'utilisation de la requête TryConnect du service SocketService.
Vous devez fournir à cette requête l'url du socket de Manager et un token d'identification valide.

      

import {inject} from "inversify";
import "reflect-metadata";
import {Mediator} from "@adclz/fevermainlib/kernel"
import {TryConnect} from "@adclz/fevermainlib/services/socket"
 
export default class MyClass {
private readonly Mediator: Mediator
 
constructor(@inject(Mediator) Mediator: Mediator) {
this.Mediator = Mediator
}
 
public TryConnectToWebSocket() {
this.Mediator.Request(new TryConnect({
Url: "ws://localhost:7892",
Token: "cc45e44e-e0c8-489c-8b1b-5af41bd0e884"
}))
}
}
 

Si l'identifiant est valide, Manager vous enverra l'état de votre profil et le token vous permettant d'accéder à l'api rest.
Sinon, celui-ci vous enverra un log d'avertisselent et vous déconnectera.

Liaison à l'Api REST

Notification

Lors d'une connection réussie, Manager vous enverra les informations de votre profil via OnAuthTransition.

      

import {inject} from "inversify"
import "reflect-metadata"
import {Mediator} from "@adclz/fevermainlib/kernel"
import {OnAuthTransition} from "@adclz/fevermainlib/services/auth"
 
export default class MyClass {
private readonly Mediator: Mediator
 
constructor(@inject(Mediator) Mediator: Mediator) {
this.Mediator = Mediator
this.Mediator.Notification(OnAuthTransition).Subscribe("MyNotificationKey", profile => {
console.log(profile)
(parameter) profile: Profile
})
}
}
 

Classe Profile

L'objet Profil reçu par cette notification contient le token de liaison, les autorisations et le nom du profil enregistré dans Manager.

Vous pouvez voir en détail le fonctionnement de cette classe dans la section dédiée au service Auth.

RestApiToken est nécèssaire dans la vaste majorité des requêtes avec l'api rest que vous allez effectuer envers Manager.
Son absence dans l'en-tête ou des autorisations trop faibles pour executer une action vous renverront une erreur.

Déroulement

En bref, voici le déroulement de l'authentification.