@sonoransoftware/sonoran.js 1.0.59 → 1.0.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -373,6 +373,17 @@ export interface CMSSetFormLockStatusPromiseResult {
373
373
  reason?: string;
374
374
  data?: unknown;
375
375
  }
376
+ export interface CMSCustomLogType {
377
+ id: string;
378
+ label: string;
379
+ shortCode: string;
380
+ melonlyId?: string;
381
+ }
382
+ export interface CMSGetCustomLogTypesPromiseResult {
383
+ success: boolean;
384
+ reason?: string;
385
+ data?: CMSCustomLogType[];
386
+ }
376
387
  export interface CMSCurrentSession {
377
388
  id: string;
378
389
  sysStatus: boolean;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './instance/Instance';
2
2
  export * from './builders';
3
3
  export * from './libs/rest/src';
4
- export { productEnums, CADNewDispatchBuilderOptions, CADSubscriptionVersionEnum, CMSSubscriptionVersionEnum, RadioSubscriptionLevel, RadioSetUserChannelsOptions, RadioChannel, RadioChannelGroup, RadioConnectedUser, RadioSpeakerLocation, RadioGetCommunityChannelsPromiseResult, RadioGetConnectedUsersPromiseResult, RadioGetConnectedUserPromiseResult, RadioSetUserChannelsPromiseResult, RadioSetUserDisplayNamePromiseResult, RadioGetServerSubscriptionFromIpPromiseResult, RadioSetServerIpPromiseResult, RadioSetInGameSpeakerLocationsPromiseResult, CADSetClockTimePromiseResult, CADJoinCommunityPromiseResult, CADLeaveCommunityPromiseResult, CADStandardResponse, CMSProfileField, CMSGetCurrentClockInPromiseResult, CMSAccountsPage, CMSAccountSummary, CMSGetAccountsPromiseResult, CMSGetProfileFieldsPromiseResult, CMSProfileFieldUpdate, CMSEditAccountProfileFieldsPromiseResult, CMSRsvpPromiseResult, CMSChangeFormStagePromiseResult, CMSSetGameServerStruct, CMSSetGameServersPromiseResult, CMSExecuteRankPromotionResult, CMSTriggerPromotionFlowPayload, CMSPromotionFlow, CMSTriggerPromotionFlowsPromiseResult, CMSGetPromotionFlowsPromiseResult, CMSGetFormSubmissionsPromiseResult, CMSERLCGetOnlinePlayersPromiseResult, CMSERLCGetPlayerQueuePromiseResult, CMSERLCAddNewRecordPromiseResult, CMSERLCExecuteCommandPayload, CMSERLCExecuteCommandPromiseResult, CMSERLCTeamsLockPromiseResult, CMSERLCTeamsUnlockPromiseResult } from './constants';
4
+ export { productEnums, CADNewDispatchBuilderOptions, CADSubscriptionVersionEnum, CMSSubscriptionVersionEnum, RadioSubscriptionLevel, RadioSetUserChannelsOptions, RadioChannel, RadioChannelGroup, RadioConnectedUser, RadioSpeakerLocation, RadioGetCommunityChannelsPromiseResult, RadioGetConnectedUsersPromiseResult, RadioGetConnectedUserPromiseResult, RadioSetUserChannelsPromiseResult, RadioSetUserDisplayNamePromiseResult, RadioGetServerSubscriptionFromIpPromiseResult, RadioSetServerIpPromiseResult, RadioSetInGameSpeakerLocationsPromiseResult, CADSetClockTimePromiseResult, CADJoinCommunityPromiseResult, CADLeaveCommunityPromiseResult, CADStandardResponse, CMSProfileField, CMSGetCurrentClockInPromiseResult, CMSAccountsPage, CMSAccountSummary, CMSGetAccountsPromiseResult, CMSGetProfileFieldsPromiseResult, CMSProfileFieldUpdate, CMSEditAccountProfileFieldsPromiseResult, CMSRsvpPromiseResult, CMSChangeFormStagePromiseResult, CMSSetGameServerStruct, CMSSetGameServersPromiseResult, CMSExecuteRankPromotionResult, CMSTriggerPromotionFlowPayload, CMSPromotionFlow, CMSTriggerPromotionFlowsPromiseResult, CMSGetPromotionFlowsPromiseResult, CMSCustomLogType, CMSGetCustomLogTypesPromiseResult, CMSGetFormSubmissionsPromiseResult, CMSERLCGetOnlinePlayersPromiseResult, CMSERLCGetPlayerQueuePromiseResult, CMSERLCAddNewRecordPromiseResult, CMSERLCExecuteCommandPayload, CMSERLCExecuteCommandPromiseResult, CMSERLCTeamsLockPromiseResult, CMSERLCTeamsUnlockPromiseResult } from './constants';
@@ -425,6 +425,9 @@ class REST extends events_1.EventEmitter {
425
425
  case 'GET_PROMOTION_FLOWS': {
426
426
  return [];
427
427
  }
428
+ case 'GET_CUSTOM_LOG_TYPES': {
429
+ return [];
430
+ }
428
431
  case 'ERLC_GET_ONLINE_PLAYERS': {
429
432
  return {
430
433
  robloxJoinCode: args[0]
@@ -101,6 +101,10 @@ class RequestManager extends events_1.EventEmitter {
101
101
  apiData.data.data = [];
102
102
  break;
103
103
  }
104
+ case 'GET_CUSTOM_LOG_TYPES': {
105
+ apiData.data.data = [];
106
+ break;
107
+ }
104
108
  case 'GET_CLOCKIN_TYPES': {
105
109
  apiData.data.data = [];
106
110
  break;
@@ -38,7 +38,7 @@ export declare const CommunitiesCMSAPITypes: APITypeData[];
38
38
  export declare const ERLCMSAPITypes: APITypeData[];
39
39
  export declare const RadioAPITypes: APITypeData[];
40
40
  export declare const AllAPITypes: AllAPITypeData[];
41
- export type AllAPITypesType = 'GET_SERVERS' | 'SET_SERVERS' | 'GET_VERSION' | 'SET_PENAL_CODES' | 'SET_API_ID' | 'GET_TEMPLATES' | 'NEW_RECORD' | 'EDIT_RECORD' | 'REMOVE_RECORD' | 'LOOKUP_INT' | 'LOOKUP' | 'GET_ACCOUNT' | 'CHECK_APIID' | 'APPLY_PERMISSION_KEY' | 'SET_ACCOUNT_PERMISSIONS' | 'BAN_USER' | 'VERIFY_SECRET' | 'AUTH_STREETSIGNS' | 'SET_POSTALS' | 'SEND_PHOTO' | 'SET_CLOCK' | 'JOIN_COMMUNITY' | 'LEAVE_COMMUNITY' | 'GET_CHARACTERS' | 'NEW_CHARACTER' | 'EDIT_CHARACTER' | 'REMOVE_CHARACTER' | 'GET_IDENTIFIERS' | 'MODIFY_IDENTIFIER' | 'SET_IDENTIFIER' | 'IDENTS_TO_GROUP' | 'UNIT_PANIC' | 'UNIT_STATUS' | 'GET_BLIPS' | 'ADD_BLIP' | 'MODIFY_BLIP' | 'REMOVE_BLIP' | '911_CALL' | 'REMOVE_911' | 'GET_CALLS' | 'GET_MY_CALL' | 'GET_ACTIVE_UNITS' | 'KICK_UNIT' | 'NEW_DISPATCH' | 'ATTACH_UNIT' | 'DETACH_UNIT' | 'SET_CALL_POSTAL' | 'SET_CALL_PRIMARY' | 'ADD_CALL_NOTE' | 'CLOSE_CALL' | 'UNIT_LOCATION' | 'SET_STREETSIGN_CONFIG' | 'UPDATE_STREETSIGN' | 'GET_COM_ACCOUNT' | 'GET_DEPARTMENTS' | 'GET_SUB_VERSION' | 'GET_CURRENT_CLOCK_IN' | 'GET_CLOCKIN_TYPES' | 'GET_LATEST_ACTIVITY' | 'GET_ACCOUNTS' | 'GET_PROFILE_FIELDS' | 'CHECK_COM_APIID' | 'VERIFY_WHITELIST' | 'CLOCK_IN_OUT' | 'FULL_WHITELIST' | 'GET_ACCOUNT_RANKS' | 'SET_ACCOUNT_RANKS' | 'RSVP' | 'CHANGE_FORM_STAGE' | 'GET_FORM_TEMPLATE_SUBMISSIONS' | 'GET_FORM_LOCK_STATUS' | 'SET_FORM_LOCK_STATUS' | 'GET_CURRENT_SESSION' | 'START_SESSION' | 'STOP_SESSION' | 'CANCEL_SESSION' | 'KICK_ACCOUNT' | 'BAN_ACCOUNT' | 'LOOKUP' | 'EDIT_ACC_PROFLIE_FIELDS' | 'SET_ACCOUNT_NAME' | 'FORCE_SYNC' | 'TRIGGER_PROMOTION_FLOWS' | 'GET_PROMOTION_FLOWS' | 'SET_GAME_SERVERS' | 'ERLC_GET_ONLINE_PLAYERS' | 'ERLC_GET_PLAYER_QUEUE' | 'ERLC_ADD_NEW_RECORD' | 'ERLC_EXECUTE_COMMAND' | 'ERLC_TEAMS_LOCK' | 'ERLC_TEAMS_UNLOCK' | 'RADIO_GET_COMMUNITY_CHANNELS' | 'RADIO_GET_CONNECTED_USERS' | 'RADIO_GET_CONNECTED_USER' | 'RADIO_SET_USER_CHANNELS' | 'RADIO_SET_USER_DISPLAY_NAME' | 'RADIO_GET_SERVER_SUBSCRIPTION_FROM_IP' | 'RADIO_SET_SERVER_IP' | 'RADIO_SET_IN_GAME_SPEAKER_LOCATIONS' | 'PLAY_TONE';
41
+ export type AllAPITypesType = 'GET_SERVERS' | 'SET_SERVERS' | 'GET_VERSION' | 'SET_PENAL_CODES' | 'SET_API_ID' | 'GET_TEMPLATES' | 'NEW_RECORD' | 'EDIT_RECORD' | 'REMOVE_RECORD' | 'LOOKUP_INT' | 'LOOKUP' | 'GET_ACCOUNT' | 'CHECK_APIID' | 'APPLY_PERMISSION_KEY' | 'SET_ACCOUNT_PERMISSIONS' | 'BAN_USER' | 'VERIFY_SECRET' | 'AUTH_STREETSIGNS' | 'SET_POSTALS' | 'SEND_PHOTO' | 'SET_CLOCK' | 'JOIN_COMMUNITY' | 'LEAVE_COMMUNITY' | 'GET_CHARACTERS' | 'NEW_CHARACTER' | 'EDIT_CHARACTER' | 'REMOVE_CHARACTER' | 'GET_IDENTIFIERS' | 'MODIFY_IDENTIFIER' | 'SET_IDENTIFIER' | 'IDENTS_TO_GROUP' | 'UNIT_PANIC' | 'UNIT_STATUS' | 'GET_BLIPS' | 'ADD_BLIP' | 'MODIFY_BLIP' | 'REMOVE_BLIP' | '911_CALL' | 'REMOVE_911' | 'GET_CALLS' | 'GET_MY_CALL' | 'GET_ACTIVE_UNITS' | 'KICK_UNIT' | 'NEW_DISPATCH' | 'ATTACH_UNIT' | 'DETACH_UNIT' | 'SET_CALL_POSTAL' | 'SET_CALL_PRIMARY' | 'ADD_CALL_NOTE' | 'CLOSE_CALL' | 'UNIT_LOCATION' | 'SET_STREETSIGN_CONFIG' | 'UPDATE_STREETSIGN' | 'GET_COM_ACCOUNT' | 'GET_DEPARTMENTS' | 'GET_SUB_VERSION' | 'GET_CURRENT_CLOCK_IN' | 'GET_CLOCKIN_TYPES' | 'GET_LATEST_ACTIVITY' | 'GET_ACCOUNTS' | 'GET_PROFILE_FIELDS' | 'CHECK_COM_APIID' | 'VERIFY_WHITELIST' | 'CLOCK_IN_OUT' | 'FULL_WHITELIST' | 'GET_ACCOUNT_RANKS' | 'SET_ACCOUNT_RANKS' | 'RSVP' | 'CHANGE_FORM_STAGE' | 'GET_FORM_TEMPLATE_SUBMISSIONS' | 'GET_FORM_LOCK_STATUS' | 'SET_FORM_LOCK_STATUS' | 'GET_CURRENT_SESSION' | 'START_SESSION' | 'STOP_SESSION' | 'CANCEL_SESSION' | 'KICK_ACCOUNT' | 'BAN_ACCOUNT' | 'LOOKUP' | 'EDIT_ACC_PROFLIE_FIELDS' | 'SET_ACCOUNT_NAME' | 'FORCE_SYNC' | 'TRIGGER_PROMOTION_FLOWS' | 'GET_PROMOTION_FLOWS' | 'GET_CUSTOM_LOG_TYPES' | 'SET_GAME_SERVERS' | 'ERLC_GET_ONLINE_PLAYERS' | 'ERLC_GET_PLAYER_QUEUE' | 'ERLC_ADD_NEW_RECORD' | 'ERLC_EXECUTE_COMMAND' | 'ERLC_TEAMS_LOCK' | 'ERLC_TEAMS_UNLOCK' | 'RADIO_GET_COMMUNITY_CHANNELS' | 'RADIO_GET_CONNECTED_USERS' | 'RADIO_GET_CONNECTED_USER' | 'RADIO_SET_USER_CHANNELS' | 'RADIO_SET_USER_DISPLAY_NAME' | 'RADIO_GET_SERVER_SUBSCRIPTION_FROM_IP' | 'RADIO_SET_SERVER_IP' | 'RADIO_SET_IN_GAME_SPEAKER_LOCATIONS' | 'PLAY_TONE';
42
42
  export interface CMSServerAPIStruct {
43
43
  id: number;
44
44
  name: string;
@@ -558,6 +558,7 @@ export interface RESTTypedAPIDataStructs {
558
558
  data: CMSTriggerPromotionFlowPayload[]
559
559
  ];
560
560
  GET_PROMOTION_FLOWS: [];
561
+ GET_CUSTOM_LOG_TYPES: [];
561
562
  GET_GAME_SERVERS: [];
562
563
  SET_GAME_SERVERS: [servers: CMSSetGameServerStruct[]];
563
564
  VERIFY_WHITELIST: [
@@ -459,6 +459,12 @@ exports.GeneralCMSAPITypes = [
459
459
  path: 'general/get_promotion_flows',
460
460
  method: 'POST',
461
461
  minVersion: 0
462
+ },
463
+ {
464
+ type: 'GET_CUSTOM_LOG_TYPES',
465
+ path: 'general/get_custom_log_types',
466
+ method: 'POST',
467
+ minVersion: 0
462
468
  }
463
469
  ];
464
470
  exports.ServersCMSAPITypes = [
@@ -392,7 +392,7 @@ class CADManager extends BaseManager_1.BaseManager {
392
392
  if (!Number.isInteger(entry.serverId)) {
393
393
  throw new Error(`entries[${index}].serverId must be an integer.`);
394
394
  }
395
- if (!Array.isArray(entry.identIds) || entry.identIds.length === 0 || entry.identIds.some((id) => !Number.isInteger(id))) {
395
+ if (!Array.isArray(entry.identIds) || entry.identIds.some((id) => !Number.isInteger(id))) {
396
396
  throw new Error(`entries[${index}].identIds must be an array of integers.`);
397
397
  }
398
398
  if (typeof entry.groupName !== 'string') {
@@ -401,6 +401,9 @@ class CADManager extends BaseManager_1.BaseManager {
401
401
  if (entry.account !== undefined && typeof entry.account !== 'string') {
402
402
  throw new Error(`entries[${index}].account must be a string when provided.`);
403
403
  }
404
+ if (entry.identIds.length === 0 && !entry.account) {
405
+ throw new Error(`entries[${index}] must include account or at least one identId.`);
406
+ }
404
407
  });
405
408
  return this.executeCadRequest('IDENTS_TO_GROUP', payload);
406
409
  }
@@ -334,4 +334,9 @@ export declare class CMSManager extends BaseManager {
334
334
  * @return {Promise} Promise object represents if the request was successful with reason for failure if needed.
335
335
  * */
336
336
  erlcTeamsUnlock(robloxJoinCode: string, team: globalTypes.ERLCTeams): Promise<globalTypes.CMSERLCTeamsUnlockPromiseResult>;
337
+ /**
338
+ * Adds a new ERLC record for a player.
339
+ * @return {Promise} Promise object represents if the request was successful with reason for failure if needed.
340
+ * */
341
+ getCustomLogTypes(): Promise<globalTypes.CMSGetCustomLogTypesPromiseResult>;
337
342
  }
@@ -982,5 +982,26 @@ class CMSManager extends BaseManager_1.BaseManager {
982
982
  }
983
983
  });
984
984
  }
985
+ /**
986
+ * Adds a new ERLC record for a player.
987
+ * @return {Promise} Promise object represents if the request was successful with reason for failure if needed.
988
+ * */
989
+ async getCustomLogTypes() {
990
+ return new Promise(async (resolve, reject) => {
991
+ var _a;
992
+ try {
993
+ const getCustomLogTypesRequest = await ((_a = this.rest) === null || _a === void 0 ? void 0 : _a.request('GET_CUSTOM_LOG_TYPES'));
994
+ resolve({ success: true, data: getCustomLogTypesRequest });
995
+ }
996
+ catch (err) {
997
+ if (err instanceof src_1.APIError) {
998
+ resolve({ success: false, reason: err.response });
999
+ }
1000
+ else {
1001
+ reject(err);
1002
+ }
1003
+ }
1004
+ });
1005
+ }
985
1006
  }
986
1007
  exports.CMSManager = CMSManager;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonoransoftware/sonoran.js",
3
- "version": "1.0.59",
3
+ "version": "1.0.61",
4
4
  "description": "Sonoran.js is a library that allows you to interact with the Sonoran CAD and Sonoran CMS API. Based off of and utilizes several Discord.js library techniques for ease of use.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/constants.ts CHANGED
@@ -418,6 +418,19 @@ export interface CMSSetFormLockStatusPromiseResult {
418
418
  data?: unknown;
419
419
  }
420
420
 
421
+ export interface CMSCustomLogType {
422
+ id: string;
423
+ label: string;
424
+ shortCode: string;
425
+ melonlyId?: string;
426
+ }
427
+
428
+ export interface CMSGetCustomLogTypesPromiseResult {
429
+ success: boolean;
430
+ reason?: string;
431
+ data?: CMSCustomLogType[];
432
+ }
433
+
421
434
  export interface CMSCurrentSession {
422
435
  id: string;
423
436
  sysStatus: boolean;
package/src/index.ts CHANGED
@@ -41,6 +41,8 @@ export {
41
41
  CMSPromotionFlow,
42
42
  CMSTriggerPromotionFlowsPromiseResult,
43
43
  CMSGetPromotionFlowsPromiseResult,
44
+ CMSCustomLogType,
45
+ CMSGetCustomLogTypesPromiseResult,
44
46
  CMSGetFormSubmissionsPromiseResult,
45
47
  CMSERLCGetOnlinePlayersPromiseResult,
46
48
  CMSERLCGetPlayerQueuePromiseResult,
@@ -534,6 +534,9 @@ export class REST extends EventEmitter {
534
534
  case 'GET_PROMOTION_FLOWS': {
535
535
  return [];
536
536
  }
537
+ case 'GET_CUSTOM_LOG_TYPES': {
538
+ return [];
539
+ }
537
540
  case 'ERLC_GET_ONLINE_PLAYERS': {
538
541
  return {
539
542
  robloxJoinCode: args[0]
@@ -174,6 +174,10 @@ export class RequestManager extends EventEmitter {
174
174
  apiData.data.data = [];
175
175
  break;
176
176
  }
177
+ case 'GET_CUSTOM_LOG_TYPES': {
178
+ apiData.data.data = [];
179
+ break;
180
+ }
177
181
  case 'GET_CLOCKIN_TYPES': {
178
182
  apiData.data.data = [];
179
183
  break;
@@ -491,6 +491,12 @@ export const GeneralCMSAPITypes: APITypeData[] = [
491
491
  path: 'general/get_promotion_flows',
492
492
  method: 'POST',
493
493
  minVersion: 0
494
+ },
495
+ {
496
+ type: 'GET_CUSTOM_LOG_TYPES',
497
+ path: 'general/get_custom_log_types',
498
+ method: 'POST',
499
+ minVersion: 0
494
500
  }
495
501
  ];
496
502
 
@@ -697,7 +703,7 @@ function formatForAll(array: APITypeData[], product: productEnums): AllAPITypeDa
697
703
 
698
704
  export const AllAPITypes: AllAPITypeData[] = [ ...formatForAll(GeneralCADAPITypes, productEnums.CAD), ...formatForAll(CivilianCADAPITypes, productEnums.CAD), ...formatForAll(EmergencyCADAPITypes, productEnums.CAD), ...formatForAll(GeneralCMSAPITypes, productEnums.CMS), ...formatForAll(ServersCMSAPITypes, productEnums.CMS), ...formatForAll(EventsCMSAPITypes, productEnums.CMS), ...formatForAll(FormsCMSAPITypes, productEnums.CMS), ...formatForAll(CommunitiesCMSAPITypes, productEnums.CMS), ...formatForAll(ERLCMSAPITypes, productEnums.CMS), ...formatForAll(RadioAPITypes, productEnums.RADIO) ];
699
705
 
700
- export type AllAPITypesType = 'GET_SERVERS' | 'SET_SERVERS' | 'GET_VERSION' | 'SET_PENAL_CODES' | 'SET_API_ID' | 'GET_TEMPLATES' | 'NEW_RECORD' | 'EDIT_RECORD' | 'REMOVE_RECORD' | 'LOOKUP_INT' | 'LOOKUP' | 'GET_ACCOUNT' | 'CHECK_APIID' | 'APPLY_PERMISSION_KEY' | 'SET_ACCOUNT_PERMISSIONS' | 'BAN_USER' | 'VERIFY_SECRET' | 'AUTH_STREETSIGNS' | 'SET_POSTALS' | 'SEND_PHOTO' | 'SET_CLOCK' | 'JOIN_COMMUNITY' | 'LEAVE_COMMUNITY' | 'GET_CHARACTERS' | 'NEW_CHARACTER' | 'EDIT_CHARACTER' | 'REMOVE_CHARACTER' | 'GET_IDENTIFIERS' | 'MODIFY_IDENTIFIER' | 'SET_IDENTIFIER' | 'IDENTS_TO_GROUP' | 'UNIT_PANIC' | 'UNIT_STATUS' | 'GET_BLIPS' | 'ADD_BLIP' | 'MODIFY_BLIP' | 'REMOVE_BLIP' | '911_CALL' | 'REMOVE_911' | 'GET_CALLS' | 'GET_MY_CALL' | 'GET_ACTIVE_UNITS' | 'KICK_UNIT' | 'NEW_DISPATCH' | 'ATTACH_UNIT' | 'DETACH_UNIT' | 'SET_CALL_POSTAL' | 'SET_CALL_PRIMARY' | 'ADD_CALL_NOTE' | 'CLOSE_CALL' | 'UNIT_LOCATION' | 'SET_STREETSIGN_CONFIG' | 'UPDATE_STREETSIGN' | 'GET_COM_ACCOUNT' | 'GET_DEPARTMENTS' | 'GET_SUB_VERSION' | 'GET_CURRENT_CLOCK_IN' | 'GET_CLOCKIN_TYPES' | 'GET_LATEST_ACTIVITY' | 'GET_ACCOUNTS' | 'GET_PROFILE_FIELDS' | 'CHECK_COM_APIID' | 'VERIFY_WHITELIST' | 'CLOCK_IN_OUT' | 'FULL_WHITELIST' | 'GET_ACCOUNT_RANKS' | 'SET_ACCOUNT_RANKS' | 'RSVP' | 'CHANGE_FORM_STAGE' | 'GET_FORM_TEMPLATE_SUBMISSIONS' | 'GET_FORM_LOCK_STATUS' | 'SET_FORM_LOCK_STATUS' | 'GET_CURRENT_SESSION' | 'START_SESSION' | 'STOP_SESSION' | 'CANCEL_SESSION' | 'KICK_ACCOUNT' | 'BAN_ACCOUNT' | 'LOOKUP' | 'EDIT_ACC_PROFLIE_FIELDS' | 'SET_ACCOUNT_NAME' | 'FORCE_SYNC' | 'TRIGGER_PROMOTION_FLOWS' | 'GET_PROMOTION_FLOWS' | 'SET_GAME_SERVERS' | 'ERLC_GET_ONLINE_PLAYERS' | 'ERLC_GET_PLAYER_QUEUE' | 'ERLC_ADD_NEW_RECORD' | 'ERLC_EXECUTE_COMMAND' | 'ERLC_TEAMS_LOCK' | 'ERLC_TEAMS_UNLOCK' | 'RADIO_GET_COMMUNITY_CHANNELS' | 'RADIO_GET_CONNECTED_USERS' | 'RADIO_GET_CONNECTED_USER' | 'RADIO_SET_USER_CHANNELS' | 'RADIO_SET_USER_DISPLAY_NAME' | 'RADIO_GET_SERVER_SUBSCRIPTION_FROM_IP' | 'RADIO_SET_SERVER_IP' | 'RADIO_SET_IN_GAME_SPEAKER_LOCATIONS' | 'PLAY_TONE';
706
+ export type AllAPITypesType = 'GET_SERVERS' | 'SET_SERVERS' | 'GET_VERSION' | 'SET_PENAL_CODES' | 'SET_API_ID' | 'GET_TEMPLATES' | 'NEW_RECORD' | 'EDIT_RECORD' | 'REMOVE_RECORD' | 'LOOKUP_INT' | 'LOOKUP' | 'GET_ACCOUNT' | 'CHECK_APIID' | 'APPLY_PERMISSION_KEY' | 'SET_ACCOUNT_PERMISSIONS' | 'BAN_USER' | 'VERIFY_SECRET' | 'AUTH_STREETSIGNS' | 'SET_POSTALS' | 'SEND_PHOTO' | 'SET_CLOCK' | 'JOIN_COMMUNITY' | 'LEAVE_COMMUNITY' | 'GET_CHARACTERS' | 'NEW_CHARACTER' | 'EDIT_CHARACTER' | 'REMOVE_CHARACTER' | 'GET_IDENTIFIERS' | 'MODIFY_IDENTIFIER' | 'SET_IDENTIFIER' | 'IDENTS_TO_GROUP' | 'UNIT_PANIC' | 'UNIT_STATUS' | 'GET_BLIPS' | 'ADD_BLIP' | 'MODIFY_BLIP' | 'REMOVE_BLIP' | '911_CALL' | 'REMOVE_911' | 'GET_CALLS' | 'GET_MY_CALL' | 'GET_ACTIVE_UNITS' | 'KICK_UNIT' | 'NEW_DISPATCH' | 'ATTACH_UNIT' | 'DETACH_UNIT' | 'SET_CALL_POSTAL' | 'SET_CALL_PRIMARY' | 'ADD_CALL_NOTE' | 'CLOSE_CALL' | 'UNIT_LOCATION' | 'SET_STREETSIGN_CONFIG' | 'UPDATE_STREETSIGN' | 'GET_COM_ACCOUNT' | 'GET_DEPARTMENTS' | 'GET_SUB_VERSION' | 'GET_CURRENT_CLOCK_IN' | 'GET_CLOCKIN_TYPES' | 'GET_LATEST_ACTIVITY' | 'GET_ACCOUNTS' | 'GET_PROFILE_FIELDS' | 'CHECK_COM_APIID' | 'VERIFY_WHITELIST' | 'CLOCK_IN_OUT' | 'FULL_WHITELIST' | 'GET_ACCOUNT_RANKS' | 'SET_ACCOUNT_RANKS' | 'RSVP' | 'CHANGE_FORM_STAGE' | 'GET_FORM_TEMPLATE_SUBMISSIONS' | 'GET_FORM_LOCK_STATUS' | 'SET_FORM_LOCK_STATUS' | 'GET_CURRENT_SESSION' | 'START_SESSION' | 'STOP_SESSION' | 'CANCEL_SESSION' | 'KICK_ACCOUNT' | 'BAN_ACCOUNT' | 'LOOKUP' | 'EDIT_ACC_PROFLIE_FIELDS' | 'SET_ACCOUNT_NAME' | 'FORCE_SYNC' | 'TRIGGER_PROMOTION_FLOWS' | 'GET_PROMOTION_FLOWS' | 'GET_CUSTOM_LOG_TYPES' | 'SET_GAME_SERVERS' | 'ERLC_GET_ONLINE_PLAYERS' | 'ERLC_GET_PLAYER_QUEUE' | 'ERLC_ADD_NEW_RECORD' | 'ERLC_EXECUTE_COMMAND' | 'ERLC_TEAMS_LOCK' | 'ERLC_TEAMS_UNLOCK' | 'RADIO_GET_COMMUNITY_CHANNELS' | 'RADIO_GET_CONNECTED_USERS' | 'RADIO_GET_CONNECTED_USER' | 'RADIO_SET_USER_CHANNELS' | 'RADIO_SET_USER_DISPLAY_NAME' | 'RADIO_GET_SERVER_SUBSCRIPTION_FROM_IP' | 'RADIO_SET_SERVER_IP' | 'RADIO_SET_IN_GAME_SPEAKER_LOCATIONS' | 'PLAY_TONE';
701
707
 
702
708
  export interface CMSServerAPIStruct {
703
709
  id: number;
@@ -1253,6 +1259,7 @@ export interface RESTTypedAPIDataStructs {
1253
1259
  data: CMSTriggerPromotionFlowPayload[]
1254
1260
  ];
1255
1261
  GET_PROMOTION_FLOWS: [];
1262
+ GET_CUSTOM_LOG_TYPES: [];
1256
1263
  // CMS - Servers
1257
1264
  GET_GAME_SERVERS: [];
1258
1265
  SET_GAME_SERVERS: [servers: CMSSetGameServerStruct[]];
@@ -418,7 +418,7 @@ export class CADManager extends BaseManager {
418
418
  if (!Number.isInteger(entry.serverId)) {
419
419
  throw new Error(`entries[${index}].serverId must be an integer.`);
420
420
  }
421
- if (!Array.isArray(entry.identIds) || entry.identIds.length === 0 || entry.identIds.some((id) => !Number.isInteger(id))) {
421
+ if (!Array.isArray(entry.identIds) || entry.identIds.some((id) => !Number.isInteger(id))) {
422
422
  throw new Error(`entries[${index}].identIds must be an array of integers.`);
423
423
  }
424
424
  if (typeof entry.groupName !== 'string') {
@@ -427,6 +427,9 @@ export class CADManager extends BaseManager {
427
427
  if (entry.account !== undefined && typeof entry.account !== 'string') {
428
428
  throw new Error(`entries[${index}].account must be a string when provided.`);
429
429
  }
430
+ if (entry.identIds.length === 0 && !entry.account) {
431
+ throw new Error(`entries[${index}] must include account or at least one identId.`);
432
+ }
430
433
  });
431
434
  return this.executeCadRequest('IDENTS_TO_GROUP', payload);
432
435
  }
@@ -906,4 +906,23 @@ export class CMSManager extends BaseManager {
906
906
  }
907
907
  });
908
908
  }
909
+
910
+ /**
911
+ * Adds a new ERLC record for a player.
912
+ * @return {Promise} Promise object represents if the request was successful with reason for failure if needed.
913
+ * */
914
+ public async getCustomLogTypes(): Promise<globalTypes.CMSGetCustomLogTypesPromiseResult> {
915
+ return new Promise(async (resolve, reject) => {
916
+ try {
917
+ const getCustomLogTypesRequest: any = await this.rest?.request('GET_CUSTOM_LOG_TYPES');
918
+ resolve({ success: true, data: getCustomLogTypesRequest });
919
+ } catch (err) {
920
+ if (err instanceof APIError) {
921
+ resolve({ success: false, reason: err.response });
922
+ } else {
923
+ reject(err);
924
+ }
925
+ }
926
+ });
927
+ }
909
928
  }