59 lines
1.6 KiB
TypeScript
59 lines
1.6 KiB
TypeScript
import { inject, injectable } from "tsyringe";
|
|
|
|
import { ICreateGroupRequestData } from "../models/eft/match/ICreateGroupRequestData";
|
|
import { TimeUtil } from "../utils/TimeUtil";
|
|
|
|
@injectable()
|
|
export class MatchLocationService
|
|
{
|
|
protected locations = {};
|
|
|
|
constructor(
|
|
@inject("TimeUtil") protected timeUtil: TimeUtil
|
|
)
|
|
{ }
|
|
|
|
public createGroup(sessionID: string, info: ICreateGroupRequestData): any
|
|
{
|
|
const groupID = "test";
|
|
|
|
this.locations[info.location].groups[groupID] = {
|
|
"_id": groupID,
|
|
"owner": `pmc${sessionID}`,
|
|
"location": info.location,
|
|
"gameVersion": "live",
|
|
"region": "EUR",
|
|
"status": "wait",
|
|
"isSavage": false,
|
|
"timeShift": "CURR",
|
|
"dt": this.timeUtil.getTimestamp(),
|
|
"players": [
|
|
{
|
|
"_id": `pmc${sessionID}`,
|
|
"region": "EUR",
|
|
"ip": "127.0.0.1",
|
|
"savageId": `scav${sessionID}`,
|
|
"accessKeyId": ""
|
|
}
|
|
],
|
|
"customDataCenter": []
|
|
};
|
|
|
|
return this.locations[info.location].groups[groupID];
|
|
}
|
|
|
|
public deleteGroup(info: any): void
|
|
{
|
|
for (const locationID in this.locations)
|
|
{
|
|
for (const groupID in this.locations[locationID].groups)
|
|
{
|
|
if (groupID === info.groupId)
|
|
{
|
|
delete this.locations[locationID].groups[groupID];
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |