mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-11 08:34:52 -07:00
Cleanup and refactor (#4361)
* fix three panel layout height issue * rename websocket/services to websocket/persistence, implement LeaveRoom * cleanup * add new line eof * move route components from /components to /containers * remove duplicate style Co-authored-by: Jeremy Letto <jeremy.letto@datasite.com>
This commit is contained in:
parent
294229622d
commit
8db9475804
47 changed files with 127 additions and 76 deletions
|
|
@ -5,7 +5,7 @@ import { StatusEnum } from "types";
|
|||
import * as roomEvents from "./events/RoomEvents";
|
||||
import * as sessionEvents from "./events/SessionEvents";
|
||||
|
||||
import { RoomService, SessionService } from "./services";
|
||||
import { RoomService, SessionService } from "./persistence";
|
||||
import { RoomCommand, SessionCommands } from "./commands";
|
||||
|
||||
import ProtoFiles from "./ProtoFiles";
|
||||
|
|
@ -18,7 +18,7 @@ interface ApplicationCommands {
|
|||
session: SessionCommands;
|
||||
}
|
||||
|
||||
interface ApplicationServices {
|
||||
interface ApplicationPersistence {
|
||||
room: RoomService;
|
||||
session: SessionService;
|
||||
}
|
||||
|
|
@ -32,7 +32,7 @@ export class WebClient {
|
|||
private pendingCommands = {};
|
||||
|
||||
public commands: ApplicationCommands;
|
||||
public services: ApplicationServices;
|
||||
public persistence: ApplicationPersistence;
|
||||
|
||||
public protocolVersion = 14;
|
||||
public pb;
|
||||
|
|
@ -84,7 +84,7 @@ export class WebClient {
|
|||
session: new SessionCommands(this),
|
||||
};
|
||||
|
||||
this.services = {
|
||||
this.persistence = {
|
||||
room: new RoomService(this),
|
||||
session: new SessionService(this),
|
||||
};
|
||||
|
|
@ -93,14 +93,14 @@ export class WebClient {
|
|||
}
|
||||
|
||||
private clearStores() {
|
||||
this.services.room.clearStore();
|
||||
this.services.session.clearStore();
|
||||
this.persistence.room.clearStore();
|
||||
this.persistence.session.clearStore();
|
||||
}
|
||||
|
||||
public updateStatus(status, description) {
|
||||
console.log(`Status: [${status}]: ${description}`);
|
||||
this.status = status;
|
||||
this.services.session.updateStatus(status, description);
|
||||
this.persistence.session.updateStatus(status, description);
|
||||
|
||||
if (status === StatusEnum.DISCONNECTED) {
|
||||
this.clearStores();
|
||||
|
|
@ -195,7 +195,10 @@ export class WebClient {
|
|||
".Command_Ping.ext" : ping
|
||||
});
|
||||
|
||||
this.sendSessionCommand(command, () => this.lastPingPending = false);
|
||||
this.sendSessionCommand(command, () => {
|
||||
|
||||
this.lastPingPending = false;
|
||||
});
|
||||
}, this.options.keepalive);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,4 +24,25 @@ export default class RoomCommands {
|
|||
|
||||
this.webClient.sendRoomCommand(roomId, rc);
|
||||
}
|
||||
}
|
||||
|
||||
leaveRoom(roomId) {
|
||||
var CmdLeaveRoom = this.webClient.pb.Command_LeaveRoom.create();
|
||||
|
||||
var rc = this.webClient.pb.RoomCommand.create({
|
||||
".Command_LeaveRoom.ext" : CmdLeaveRoom
|
||||
});
|
||||
|
||||
this.webClient.sendRoomCommand(roomId, rc, (raw) => {
|
||||
const { responseCode } = raw;
|
||||
|
||||
switch (responseCode) {
|
||||
case this.webClient.pb.Response.ResponseCode.RespOk:
|
||||
this.webClient.persistence.room.leaveRoom(roomId);
|
||||
break;
|
||||
default:
|
||||
console.log(`Failed to leave Room ${roomId} [${responseCode}] : `, raw);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,9 +33,9 @@ export default class SessionCommands {
|
|||
case this.webClient.pb.Response.ResponseCode.RespOk:
|
||||
const { buddyList, ignoreList, userInfo } = resp;
|
||||
|
||||
this.webClient.services.session.updateBuddyList(buddyList);
|
||||
this.webClient.services.session.updateIgnoreList(ignoreList);
|
||||
this.webClient.services.session.updateUser(userInfo);
|
||||
this.webClient.persistence.session.updateBuddyList(buddyList);
|
||||
this.webClient.persistence.session.updateIgnoreList(ignoreList);
|
||||
this.webClient.persistence.session.updateUser(userInfo);
|
||||
|
||||
this.webClient.commands.session.listUsers();
|
||||
this.webClient.commands.session.listRooms();
|
||||
|
|
@ -97,7 +97,7 @@ export default class SessionCommands {
|
|||
if (response) {
|
||||
switch (responseCode) {
|
||||
case this.webClient.pb.Response.ResponseCode.RespOk:
|
||||
this.webClient.services.session.updateUsers(response.userList);
|
||||
this.webClient.persistence.session.updateUsers(response.userList);
|
||||
break;
|
||||
default:
|
||||
console.log(`Failed to fetch Server Rooms [${responseCode}] : `, raw);
|
||||
|
|
@ -135,7 +135,7 @@ export default class SessionCommands {
|
|||
case this.webClient.pb.Response.ResponseCode.RespOk:
|
||||
const { roomInfo } = raw[".Response_JoinRoom.ext"];
|
||||
|
||||
this.webClient.services.room.joinRoom(roomInfo);
|
||||
this.webClient.persistence.room.joinRoom(roomInfo);
|
||||
this.webClient.debug(() => console.log("Join Room: ", roomInfo.name));
|
||||
return;
|
||||
case this.webClient.pb.Response.ResponseCode.RespNameNotFound:
|
||||
|
|
@ -217,7 +217,7 @@ export default class SessionCommands {
|
|||
const { logMessage } = raw[".Response_ViewLogHistory.ext"];
|
||||
|
||||
console.log("Response_ViewLogHistory: ", logMessage)
|
||||
this.webClient.services.session.viewLogs(logMessage)
|
||||
this.webClient.persistence.session.viewLogs(logMessage)
|
||||
|
||||
this.webClient.debug(() => console.log("View Log History: ", logMessage));
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@ export const JoinRoom = {
|
|||
id: ".Event_JoinRoom.ext",
|
||||
action: ({ userInfo }, webClient, { roomEvent }) => {
|
||||
const { roomId } = roomEvent;
|
||||
webClient.services.room.userJoined(roomId, userInfo);
|
||||
webClient.persistence.room.userJoined(roomId, userInfo);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@ export const LeaveRoom = {
|
|||
id: ".Event_LeaveRoom.ext",
|
||||
action: ({ name }, webClient, { roomEvent }) => {
|
||||
const { roomId } = roomEvent;
|
||||
webClient.services.room.userLeft(roomId, name);
|
||||
webClient.persistence.room.userLeft(roomId, name);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@ export const ListGames = {
|
|||
id: ".Event_ListGames.ext",
|
||||
action: ({ gameList }, webClient, { roomEvent }) => {
|
||||
const { roomId } = roomEvent;
|
||||
webClient.services.room.updateGames(roomId, gameList);
|
||||
webClient.persistence.room.updateGames(roomId, gameList);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@ export const RoomSay = {
|
|||
id: ".Event_RoomSay.ext",
|
||||
action: (message, webClient, { roomEvent }) => {
|
||||
const { roomId } = roomEvent;
|
||||
webClient.services.room.addMessage(roomId, message);
|
||||
webClient.persistence.room.addMessage(roomId, message);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@ export const AddToList = {
|
|||
action: ({ listName, userInfo}, webClient) => {
|
||||
switch (listName) {
|
||||
case 'buddy': {
|
||||
webClient.services.session.addToBuddyList(userInfo);
|
||||
webClient.persistence.session.addToBuddyList(userInfo);
|
||||
break;
|
||||
}
|
||||
case 'ignore': {
|
||||
webClient.services.session.addToIgnoreList(userInfo);
|
||||
webClient.persistence.session.addToIgnoreList(userInfo);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import * as _ from "lodash";
|
|||
export const ListRooms = {
|
||||
id: ".Event_ListRooms.ext",
|
||||
action: ({ roomList }, webClient) => {
|
||||
webClient.services.room.updateRooms(roomList);
|
||||
webClient.persistence.room.updateRooms(roomList);
|
||||
|
||||
if (webClient.options.autojoinrooms) {
|
||||
_.each(roomList, ({ autoJoin, roomId }) => {
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@ export const RemoveFromList = {
|
|||
action: ({ listName, userName }, webClient) => {
|
||||
switch (listName) {
|
||||
case 'buddy': {
|
||||
webClient.services.session.removeFromBuddyList(userName);
|
||||
webClient.persistence.session.removeFromBuddyList(userName);
|
||||
break;
|
||||
}
|
||||
case 'ignore': {
|
||||
webClient.services.session.removeFromIgnoreList(userName);
|
||||
webClient.persistence.session.removeFromIgnoreList(userName);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ export const ServerIdentification = {
|
|||
|
||||
webClient.resetConnectionvars();
|
||||
webClient.updateStatus(StatusEnum.LOGGINGIN, "Logging in...");
|
||||
webClient.services.session.updateInfo(serverName, serverVersion);
|
||||
webClient.persistence.session.updateInfo(serverName, serverVersion);
|
||||
webClient.commands.session.login();
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
export const ServerMessage = {
|
||||
id: ".Event_ServerMessage.ext",
|
||||
action: ({ message }, webClient) => {
|
||||
webClient.services.session.serverMessage(message);
|
||||
webClient.persistence.session.serverMessage(message);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
export const UserJoined = {
|
||||
id: ".Event_UserJoined.ext",
|
||||
action: ({ userInfo }, webClient) => {
|
||||
webClient.services.session.userJoined(userInfo);
|
||||
webClient.persistence.session.userJoined(userInfo);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
export const UserLeft = {
|
||||
id: ".Event_UserLeft.ext",
|
||||
action: ({ name }, webClient) => {
|
||||
webClient.services.session.userLeft(name);
|
||||
webClient.persistence.session.userLeft(name);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ export { default as ProtoFiles } from './ProtoFiles';
|
|||
|
||||
|
||||
// Export common used services
|
||||
export { NormalizeService, RoomService} from "./services";
|
||||
export { NormalizeService, RoomService} from "./persistence";
|
||||
|
|
|
|||
|
|
@ -19,6 +19,10 @@ export default class RoomService {
|
|||
RoomsDispatch.joinRoom(roomInfo);
|
||||
}
|
||||
|
||||
leaveRoom(roomId) {
|
||||
RoomsDispatch.leaveRoom(roomId);
|
||||
}
|
||||
|
||||
updateRooms(rooms) {
|
||||
RoomsDispatch.updateRooms(rooms);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue