Skip to content

Commit 3fafd2f

Browse files
committed
feat: add SetAdminPassword
1 parent 12d7737 commit 3fafd2f

File tree

4 files changed

+48
-4
lines changed

4 files changed

+48
-4
lines changed

src/index.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export type {
77
ApplyAdvancedGameSettingsRequest,
88
ApplyAdvancedGameSettingsResponse,
99
BooleanString,
10+
CannotResetAdminPasswordErrorResponse,
1011
ClaimServerRequest,
1112
ClaimServerResponse,
1213
ClaimServerResponseData,
@@ -23,6 +24,7 @@ export type {
2324
InsufficientScopeErrorResponse,
2425
InvalidTokenErrorResponse,
2526
MissingParamsErrorResponse,
27+
PasswordInUseErrorResponse,
2628
PasswordLoginRequest,
2729
PasswordLoginResponse,
2830
PasswordLoginResponseData,
@@ -32,14 +34,15 @@ export type {
3234
QueryServerStateRequest,
3335
QueryServerStateResponse,
3436
QueryServerStateResponseData,
35-
VerifyAuthenticationTokenRequest,
36-
VerifyAuthenticationTokenResponse,
37-
WrongPasswordErrorResponse,
3837
RenameServerRequest,
3938
RenameServerResponse,
4039
ServerClaimedErrorResponse,
41-
PasswordInUseErrorResponse,
4240
ServerNotClaimedErrorResponse,
41+
SetAdminPasswordRequest,
42+
SetAdminPasswordResponse,
4343
SetClientPasswordRequest,
4444
SetClientPasswordResponse,
45+
VerifyAuthenticationTokenRequest,
46+
VerifyAuthenticationTokenResponse,
47+
WrongPasswordErrorResponse,
4548
} from "./v1/index.js";

src/v1/SetAdminPassword.ts

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import type { ApiRequest } from "./common.js";
2+
import { buildApiRequest } from "./common.js";
3+
4+
export type SetAdminPasswordRequest = ApiRequest<
5+
"SetAdminPassword",
6+
{
7+
/**
8+
* Admin Password to set on the Dedicated Server, in plaintext.
9+
*/
10+
password: string;
11+
/**
12+
* New Admin authentication token to use, since the token used for this request will become invalidated.
13+
*/
14+
authenticationToken: string;
15+
}
16+
>;
17+
18+
export type SetAdminPasswordResponse = string;
19+
20+
export const buildSetAdminPassword = buildApiRequest<
21+
SetAdminPasswordRequest,
22+
SetAdminPasswordResponse
23+
>("v1", {
24+
function: "SetAdminPassword",
25+
});

src/v1/error.ts

+4
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,7 @@ export interface ServerNotClaimedErrorResponse extends ErrorResponse {
4444
export interface PasswordInUseErrorResponse extends ErrorResponse {
4545
errorCode: "password_in_use";
4646
}
47+
48+
export interface CannotResetAdminPasswordErrorResponse extends ErrorResponse {
49+
errorCode: "cannot_reset_admin_password";
50+
}

src/v1/index.ts

+12
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { buildPasswordlessLogin } from "./PasswordlessLogin.js";
88
import { buildPasswordLogin } from "./PasswordLogin.js";
99
import { buildQueryServerState } from "./QueryServerState.js";
1010
import { buildRenameServer } from "./RenameServer.js";
11+
import { buildSetAdminPassword } from "./SetAdminPassword.js";
1112
import { buildSetClientPassword } from "./SetClientPassword.js";
1213
import { buildVerifyAuthenticationToken } from "./VerifyAuthenticationToken.js";
1314

@@ -87,6 +88,16 @@ export function buildV1(options: InternalClientOptions) {
8788
* Function does not return any data on success.
8889
*/
8990
SetClientPassword: buildSetClientPassword(options),
91+
/**
92+
* Updates the currently set Admin Password.
93+
*
94+
* This will invalidate all previously issued Client and Admin authentication tokens.
95+
*
96+
* Requires Admin privileges.
97+
*
98+
* Function does not return any data on success.
99+
*/
100+
SetAdminPassword: buildSetAdminPassword(options),
90101
};
91102
}
92103

@@ -101,5 +112,6 @@ export type * from "./PasswordlessLogin.js";
101112
export type * from "./PasswordLogin.js";
102113
export type * from "./QueryServerState.js";
103114
export type * from "./RenameServer.js";
115+
export type * from "./SetAdminPassword.js";
104116
export type * from "./SetClientPassword.js";
105117
export type * from "./VerifyAuthenticationToken.js";

0 commit comments

Comments
 (0)