mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-05-24 04:57:08 -05:00
40 lines
1.3 KiB
TypeScript
40 lines
1.3 KiB
TypeScript
import { create } from '@bufbuild/protobuf';
|
|
import {
|
|
Command_ForgotPasswordRequest_ext,
|
|
Command_ForgotPasswordRequestSchema,
|
|
Response_ForgotPasswordRequest_ext,
|
|
type ForgotPasswordRequestParams,
|
|
} from '@app/generated';
|
|
|
|
import { StatusEnum } from '../../interfaces/StatusEnum';
|
|
import { CLIENT_CONFIG } from '../../config';
|
|
import { WebClient } from '../../WebClient';
|
|
import type { ConnectTarget } from '../../interfaces/WebClientConfig';
|
|
import { disconnect, updateStatus } from './';
|
|
|
|
export function forgotPasswordRequest(options: ConnectTarget & ForgotPasswordRequestParams): void {
|
|
const { userName } = options;
|
|
|
|
WebClient.instance.protobuf.sendSessionCommand(Command_ForgotPasswordRequest_ext, create(Command_ForgotPasswordRequestSchema, {
|
|
...CLIENT_CONFIG,
|
|
userName,
|
|
}), {
|
|
responseExt: Response_ForgotPasswordRequest_ext,
|
|
onSuccess: (resp) => {
|
|
if (resp?.challengeEmail) {
|
|
updateStatus(StatusEnum.DISCONNECTED, null);
|
|
WebClient.instance.response.session.resetPasswordChallenge();
|
|
} else {
|
|
updateStatus(StatusEnum.DISCONNECTED, null);
|
|
WebClient.instance.response.session.resetPassword();
|
|
}
|
|
disconnect();
|
|
},
|
|
onError: () => {
|
|
updateStatus(StatusEnum.DISCONNECTED, null);
|
|
WebClient.instance.response.session.resetPasswordFailed();
|
|
disconnect();
|
|
},
|
|
});
|
|
}
|