Refactoring Woka management (#1810)
* Wrap websockets with HyperExpress * Add endpoints on pusher to resolve wokas * getting textures urls from pusher * Adding OpenAPI documentation for the pusher. The pusher now exposes a "/openapi" endpoint and a "/swagger-ui/" endpoint. * revert FRONT_URL * playerTextures metadata is being loaded via Phaser.Loader * fetch textures every time character or customize scene is open * Heavy changes: refactoring the pusher to always send the textures (and the front to accept them) * Sending character layer details to admin * Cleaning commented code * Fixing regex * Fix woka endpoints on pusher * Change error wording on pusher * Working on integration of the woka-list with the new admin endpoint. * Switching from "name" to "id" in texture object + using zod for woka/list validation * Add position on default woka data * Remove async on pusher option method * Fix woka list url * add options for /register * Fxiing loading the Woka list * Actually returning something in logout-callback * Copying messages to back too * remove customize button if no body parts are available (#1952) * remove customize button if no body parts are available * remove unused position field from PlayerTexturesCollection interface * removed unused label field * fix LocalUser test * little PlayerTextures class refactor * Fixing linting * Fixing missing Openapi packages in prod * Fixing back build Co-authored-by: Hanusiak Piotr <piotr@ltmp.co> Co-authored-by: David Négrier <d.negrier@thecodingmachine.com> * Add returns on pusher endpoints Co-authored-by: Alexis Faizeau <a.faizeau@workadventu.re> Co-authored-by: Hanusiak Piotr <piotr@ltmp.co> Co-authored-by: Piotr Hanusiak <wacneg@gmail.com>
This commit is contained in:
@@ -13,4 +13,11 @@ Check out the [contributing guide](../../CONTRIBUTING.md)
|
||||
|
||||
## Front documentation
|
||||
|
||||
- [How to add translations](how-to-translate.md)
|
||||
- [How to add new functions in the scripting API](contributing-to-scripting-api.md)
|
||||
- [About Wokas](wokas.md)
|
||||
|
||||
## Pusher documentation
|
||||
|
||||
The Pusher is exposing its HTTP API as "OpenAPI" endpoint.
|
||||
You can browse this API at `http://pusher.workadventure.localhost/swagger-ui/`.
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# About Wokas
|
||||
|
||||
Wokas are made of a set of layers (for custom wokas), or of only 1 layers (if selected from the first screen)
|
||||
|
||||
Internally, each layer has:
|
||||
|
||||
- a name
|
||||
- a URL
|
||||
|
||||
## Connection to a map
|
||||
|
||||
When a user connects to a map, it sends, as a web-socket parameter, the list of layer **names**.
|
||||
|
||||
The pusher is in charge of converting those layer names into the URLs. This way, a client cannot send any random
|
||||
URL to the pusher.
|
||||
|
||||
When the pusher receives the layer names, it validates these names and sends back the URLs + sends the names+urls to the back.
|
||||
If the layers cannot be validated, the websocket connections sends an error message and closes. The user is sent back to the "choose your Woka" screen.
|
||||
|
||||
## Getting the list of available Wokas
|
||||
|
||||
The pusher can send the list of available Wokas to the user.
|
||||
It can actually query the admin for this list, if needed (= if an admin is configured)
|
||||
|
||||
## In the pusher
|
||||
|
||||
The pusher contains a classes in charge of managing the Wokas:
|
||||
|
||||
- `LocalWokaService`: used when no admin is connected. Returns a hard-coded list of Wokas (stored in `pusher/data/woka.json`).
|
||||
- `AdminWokaService`: used to delegate the list of Wokas to the admin.
|
||||
Reference in New Issue
Block a user