34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { AccountActivationParams } from 'store';
|
|
import { StatusEnum, WebSocketConnectOptions } from 'types';
|
|
|
|
import webClient from '../../WebClient';
|
|
import { SessionPersistence } from '../../persistence';
|
|
|
|
import { disconnect, login, updateStatus } from './';
|
|
|
|
export function activateAccount(options: WebSocketConnectOptions, passwordSalt?: string): void {
|
|
const { userName, token } = options as unknown as AccountActivationParams;
|
|
|
|
const accountActivationConfig = {
|
|
...webClient.clientConfig,
|
|
userName,
|
|
token,
|
|
};
|
|
|
|
const CmdActivate = webClient.protobuf.controller.Command_Activate.create(accountActivationConfig);
|
|
|
|
const sc = webClient.protobuf.controller.SessionCommand.create({
|
|
'.Command_Activate.ext': CmdActivate
|
|
});
|
|
|
|
webClient.protobuf.sendSessionCommand(sc, raw => {
|
|
if (raw.responseCode === webClient.protobuf.controller.Response.ResponseCode.RespActivationAccepted) {
|
|
SessionPersistence.accountActivationSuccess();
|
|
login(options, passwordSalt);
|
|
} else {
|
|
updateStatus(StatusEnum.DISCONNECTED, 'Account Activation Failed');
|
|
disconnect();
|
|
SessionPersistence.accountActivationFailed();
|
|
}
|
|
});
|
|
}
|