character: Client.character,
};
let messageUserPosition = new MessageUserPosition(data);
- let world = this.Worlds.get(messageUserPosition.roomId);
+ let world = this.Worlds.get(Client.roomId);
if (!world) {
return;
}
world.updatePosition(Client, messageUserPosition.position);
- this.Worlds.set(messageUserPosition.roomId, world);
+ this.Worlds.set(Client.roomId, world);
}
//Hydrate and manage error
}
let data = {
userId: socket.id,
- roomId: socket.roomId,
position: socket.position,
name: socket.name,
character: socket.character,
};
let dataArray = <any>[];
- if (mapPositionUserByRoom.get(data.roomId)) {
- dataArray = mapPositionUserByRoom.get(data.roomId);
+ if (mapPositionUserByRoom.get(socket.roomId)) {
+ dataArray = mapPositionUserByRoom.get(socket.roomId);
dataArray.push(data);
} else {
dataArray = [data];
}
- mapPositionUserByRoom.set(data.roomId, dataArray);
+ mapPositionUserByRoom.set(socket.roomId, dataArray);
}
rooms.userPositionMapByRoom = Array.from(mapPositionUserByRoom);
};
export class Message {
userId: string;
- roomId: string;
name: string;
character: string;
constructor(data: any) {
- if (!data.userId || !data.roomId) {
+ if (!data.userId) {
console.error("Got invalid message", data);
- throw Error("userId or roomId cannot be null");
+ throw Error("userId cannot be null");
}
this.userId = data.userId;
- this.roomId = data.roomId;
this.name = data.name;
this.character = data.character;
}
describe("Message Model", () => {
it("should find userId and roomId", () => {
- let message = {userId: "test1", roomId: "test2", name: "foo", character: "user"};
+ let message = {userId: "test1", name: "foo", character: "user"};
let messageObject = new Message(message);
expect(messageObject.userId).toBe("test1");
- expect(messageObject.roomId).toBe("test2");
expect(messageObject.name).toBe("foo");
expect(messageObject.character).toBe("user");
})
it("should find throw error when no userId", () => {
- let message = {roomId: "test2"};
+ let message = {};
expect(() => {
let messageObject = new Message(message);
- }).toThrow(new Error("userId or roomId cannot be null"));
- });
-
- it("should find throw error when no roomId", () => {
- let message = {userId: "test1"};
- expect(() => {
- let messageObject = new Message(message);
- }).toThrow(new Error("userId or roomId cannot be null"));
- });
-
- it("should find throw error when no roomId", () => {
- let message = {name: "foo"};
- expect(() => {
- let messageObject = new Message(message);
- }).toThrow(new Error("userId or roomId cannot be null"));
+ }).toThrow(new Error("userId cannot be null"));
});
})
class Message {
userId: string;
- roomId: string;
name: string;
character: string;
- constructor(userId : string, roomId : string, name: string, character: string) {
+ constructor(userId : string, name: string, character: string) {
this.userId = userId;
- this.roomId = roomId;
this.name = name;
this.character = character;
}
export interface MessageUserPositionInterface {
userId: string;
- roomId: string;
name: string;
character: string;
position: PointInterface;
class MessageUserPosition extends Message implements MessageUserPositionInterface{
position: PointInterface;
- constructor(userId : string, roomId : string, point : Point, name: string, character: string) {
- super(userId, roomId, name, character);
+ constructor(userId : string, point : Point, name: string, character: string) {
+ super(userId, name, character);
this.position = point;
}
}
data.forEach((userPosition: any) => {
this.listUsersPosition.push(new MessageUserPosition(
userPosition.userId,
- userPosition.roomId,
new Point(
userPosition.position.x,
userPosition.position.y,