Skip to content

Commit

Permalink
refactor(server/exports): merge individual exports to a single getPla…
Browse files Browse the repository at this point in the history
…yerData export
  • Loading branch information
LiamDormon committed Sep 5, 2022
1 parent a4712b0 commit 2307e0f
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 12 deletions.
51 changes: 39 additions & 12 deletions resources/server/bridge/sv_exports.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { generateUniquePhoneNumber } from '../misc/generateUniquePhoneNumber';
import { bridgeLogger } from './bridge.utils';
import { config } from '../config';
import { PlayerAddData } from '../players/player.interfaces';
import { ExportedPlayerData, PlayerAddData } from '../players/player.interfaces';
import { playerLogger } from '../players/player.utils';
import PlayerService from '../players/player.service';
import { PhoneEvents } from '../../../typings/phone';
import { Player } from '../players/player.class';

const exp = global.exports;

Expand Down Expand Up @@ -41,21 +42,47 @@ if (config.general.useResourceIntegration) {
}

exp('getPhoneNumber', (src: number): string => {
playerLogger.error(
'[DEPRECATION WARNING]: deprecated export getPhoneNumber called, please use getPlayerData',
);
return PlayerService.getPlayer(src).getPhoneNumber();
});

exp('getPlayerIdentifier', (src: number): string => {
return PlayerService.getIdentifier(src);
});
interface PlayerDataExportArgs {
source?: string | number;
identifier?: string;
phoneNumber?: string;
}

exp('getPlayerName', (src: number): string => {
return PlayerService.getPlayer(src).getName();
});
/**
* Returns an object containing various player data that NPWD stores
* @param locator: Object that must contain 1 of either a source, identifier or phone number
*/
exp('getPlayerData', async (locator: PlayerDataExportArgs): Promise<ExportedPlayerData | null> => {
let player: Player;

exp('getPlayerFirstName', (src: number): string => {
return PlayerService.getPlayer(src).getFirstName();
});
if (locator.source) {
player = PlayerService.getPlayer(
typeof locator.source === 'string' ? parseInt(locator.source) : locator.source,
);
}

if (locator.identifier) {
player = PlayerService.getPlayerFromIdentifier(locator.identifier);
}

if (locator.phoneNumber) {
const identifier = await PlayerService.getIdentifierFromPhoneNumber(locator.phoneNumber, false);
player = PlayerService.getPlayerFromIdentifier(identifier);
}

if (!player) return null;

exp('getPlayerLastName', (src: number): string => {
return PlayerService.getPlayer(src).getLastName();
return {
phoneNumber: player.getPhoneNumber(),
firstName: player.getFirstName(),
lastName: player.getLastName(),
name: player.getName(),
identifier: player.getIdentifier(),
};
});
8 changes: 8 additions & 0 deletions resources/server/players/player.interfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,11 @@ export interface CreatePlayerInstance {
identifier: string;
phoneNumber: string;
}

export interface ExportedPlayerData {
phoneNumber: string;
firstName: string;
lastName: string;
name: string;
identifier: string;
}

0 comments on commit 2307e0f

Please sign in to comment.