apply textures on openid login, fix pusher errors on woka list (#1961)

* apply textures on openid login, fix pusher errors on woka list

* remove logging

* Returning a HTTP 400 id roomUrl parameter not set

Co-authored-by: David Négrier <d.negrier@thecodingmachine.com>
This commit is contained in:
Lurkars 2022-03-14 10:14:35 +01:00 committed by GitHub
parent 6f4c3a89cd
commit 55db6a9b12
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 16 deletions

View File

@ -330,9 +330,12 @@ class ConnectionManager {
throw new Error("No Auth code provided");
}
}
const { authToken, userUuid, email, username, locale } = await Axios.get(`${PUSHER_URL}/login-callback`, {
params: { code, nonce, token, playUri: this.currentRoom?.key },
}).then((res) => {
const { authToken, userUuid, email, username, locale, textures } = await Axios.get(
`${PUSHER_URL}/login-callback`,
{
params: { code, nonce, token, playUri: this.currentRoom?.key },
}
).then((res) => {
return res.data;
});
localUserStore.setAuthToken(authToken);
@ -361,6 +364,18 @@ class ConnectionManager {
}
}
if (textures) {
const layers: string[] = [];
for (const texture of textures) {
if (texture !== undefined) {
layers.push(texture.id);
}
}
if (layers.length > 0) {
gameManager.setCharacterLayers(layers);
}
}
//user connected, set connected store for menu at true
userIsConnected.set(true);
}

View File

@ -46,7 +46,7 @@ export class CustomizeScene extends AbstractCharacterScene {
// FIXME: window.location.href is wrong. We need the URL of the main room (so we need to apply any redirect before!)
this.load.json(
wokaMetadataKey,
`${PUSHER_URL}/woka/list/` + encodeURIComponent(window.location.href),
`${PUSHER_URL}/woka/list?roomUrl=` + encodeURIComponent(window.location.href),
undefined,
{
responseType: "text",

View File

@ -50,7 +50,7 @@ export class SelectCharacterScene extends AbstractCharacterScene {
// FIXME: window.location.href is wrong. We need the URL of the main room (so we need to apply any redirect before!)
this.load.json(
wokaMetadataKey,
`${PUSHER_URL}/woka/list/` + encodeURIComponent(window.location.href),
`${PUSHER_URL}/woka/list?roomUrl=` + encodeURIComponent(window.location.href),
undefined,
{
responseType: "text",

View File

@ -1,17 +1,17 @@
import { BaseHttpController } from "./BaseHttpController";
import { parse } from "query-string";
import { wokaService } from "../Services/WokaService";
import * as tg from "generic-type-guard";
import { jwtTokenManager } from "../Services/JWTTokenManager";
export class WokaListController extends BaseHttpController {
routes() {
this.app.options("/woka/list/:roomUrl", {}, (req, res) => {
this.app.options("/woka/list", {}, (req, res) => {
res.status(200).send("");
return;
});
// eslint-disable-next-line @typescript-eslint/no-misused-promises
this.app.get("/woka/list/:roomUrl", {}, async (req, res) => {
this.app.get("/woka/list", {}, async (req, res) => {
const token = req.header("Authorization");
if (!token) {
@ -29,17 +29,13 @@ export class WokaListController extends BaseHttpController {
return;
}
const isParameters = new tg.IsInterface()
.withProperties({
roomUrl: tg.isString,
})
.get();
let { roomUrl } = parse(req.path_query);
if (!isParameters(req.path_parameters)) {
return res.status(400).send("Unknown parameters");
if (typeof roomUrl !== "string") {
return res.status(400).send("missing roomUrl URL parameter");
}
const roomUrl = decodeURIComponent(req.path_parameters.roomUrl);
roomUrl = decodeURIComponent(roomUrl);
const wokaList = await wokaService.getWokaList(roomUrl, req.params["uuid"]);
if (!wokaList) {