import { Action } from '@ngrx/store'; import { RESTClientError } from '@loafer/ng-rest/protocol'; import { Member } from '@overflow/commons-typescript/model/member'; export enum ActionType { CreateTotp = '[member.totp] CreateTotp', CreateTotpSuccess = '[member.totp] CreateTotpSuccess', CreateTotpFailure = '[member.totp] CreateTotpFailure', Regist = '[member.totp] Regist', RegistSuccess = '[member.totp] RegistSuccess', RegistFailure = '[member.totp] RegistFailure', CheckCodeForMember = '[member.totp] CheckCodeForMember', CheckCodeForMemberSuccess = '[member.totp] CheckCodeForMemberSuccess', CheckCodeForMemberFailure = '[member.totp] CheckCodeForMemberFailure', } export class CreateTotp implements Action { readonly type = ActionType.CreateTotp; constructor(public payload: Member) {} } export class CreateTotpSuccess implements Action { readonly type = ActionType.CreateTotpSuccess; constructor(public payload: {key: string, uri: string}) {} } export class CreateTotpFailure implements Action { readonly type = ActionType.CreateTotpFailure; constructor(public payload: RESTClientError) {} } // ---------------------------------------------------------------------------------------- export class Regist implements Action { readonly type = ActionType.Regist; constructor(public payload: {member: Member, secretCode: string, code: string}) {} } export class RegistSuccess implements Action { readonly type = ActionType.RegistSuccess; constructor(public payload: void) {} } export class RegistFailure implements Action { readonly type = ActionType.RegistFailure; constructor(public payload: RESTClientError) {} } // ---------------------------------------------------------------------------------------- export class CheckCodeForMember implements Action { readonly type = ActionType.CheckCodeForMember; constructor(public payload: {member: Member, code: string}) {} } export class CheckCodeForMemberSuccess implements Action { readonly type = ActionType.CheckCodeForMemberSuccess; constructor(public payload: void) {} } export class CheckCodeForMemberFailure implements Action { readonly type = ActionType.CheckCodeForMemberFailure; constructor(public payload: RESTClientError) {} } export type Actions = | CreateTotp | CreateTotpSuccess | CreateTotpFailure | Regist | RegistSuccess | RegistFailure | CheckCodeForMember | CheckCodeForMemberSuccess | CheckCodeForMemberFailure ;