diff --git a/src/packages/settings/member/member.module.ts b/src/packages/settings/member/member.module.ts index f410004..df1f0e0 100644 --- a/src/packages/settings/member/member.module.ts +++ b/src/packages/settings/member/member.module.ts @@ -6,6 +6,7 @@ import { MaterialModule } from 'app/commons/ui/material/material.module'; import { QRCodeModule } from 'angularx-qrcode'; import { COMPONENTS } from './component'; +import {SERVICES} from "../../probe/service"; @NgModule({ imports: [ CommonModule, @@ -18,6 +19,9 @@ import { COMPONENTS } from './component'; ], declarations: [ COMPONENTS, - ] + ], + providers: [ + SERVICES, + ], }) export class MemberModule { } diff --git a/src/packages/settings/member/service/index.ts b/src/packages/settings/member/service/index.ts index e69de29..0c73f8e 100644 --- a/src/packages/settings/member/service/index.ts +++ b/src/packages/settings/member/service/index.ts @@ -0,0 +1,5 @@ +import {MemberTotpService} from './member-totp.service'; + +export const SERVICES = [ + MemberTotpService, +]; diff --git a/src/packages/settings/member/service/member-totp.service.spec.ts b/src/packages/settings/member/service/member-totp.service.spec.ts new file mode 100644 index 0000000..a8305ef --- /dev/null +++ b/src/packages/settings/member/service/member-totp.service.spec.ts @@ -0,0 +1,15 @@ +import { TestBed, inject } from '@angular/core/testing'; + +import { MemberTotpService } from './member-totp.service'; + +describe('MemberTotpService', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [MemberTotpService] + }); + }); + + it('should be created', inject([MemberTotpService], (service: MemberTotpService) => { + expect(service).toBeTruthy(); + })); +}); diff --git a/src/packages/settings/member/service/member-totp.service.ts b/src/packages/settings/member/service/member-totp.service.ts new file mode 100644 index 0000000..407f557 --- /dev/null +++ b/src/packages/settings/member/service/member-totp.service.ts @@ -0,0 +1,30 @@ +import { Injectable } from '@angular/core'; +import { RPCClient } from '../../../core/rpc/client/RPCClient'; +import { Observable } from 'rxjs/Observable'; +import { MemberTotp } from '../model/MemberTotp'; +import { Member } from '../../../member/model'; + +@Injectable() +export class MemberTotpService { + + public constructor( + private rpcClient: RPCClient, + ) { + + } + + public createTotp(): Observable { + // Todo Store get member object + + return this.rpcClient.call('MemberTotpService.createTotp', {id: '1'}); + } + + public regist(): Observable { + const param = { + Member: {id: 1,}, + MemberTotp: {id: 1, secretCode: 'dkdkdkdk'}, + code: '123123' + }; + return this.rpcClient.call('MemberTotpService.regist', param); + } +} diff --git a/src/packages/settings/member/store/totp/index.ts b/src/packages/settings/member/store/totp/index.ts new file mode 100644 index 0000000..297fc8b --- /dev/null +++ b/src/packages/settings/member/store/totp/index.ts @@ -0,0 +1,4 @@ +export * from './totp.action'; +// export * from './totp.effect'; +// export * from './totp.reducer'; +// export * from './totp.state'; diff --git a/src/packages/settings/member/store/totp/totp.action.ts b/src/packages/settings/member/store/totp/totp.action.ts new file mode 100644 index 0000000..3b9ae8a --- /dev/null +++ b/src/packages/settings/member/store/totp/totp.action.ts @@ -0,0 +1,63 @@ +import { Action } from '@ngrx/store'; + +import { RESTError } from 'packages/core/rest/error'; + +import { DomainMember } from 'packages/domain/model'; +import {Member} from "../../../../member/model"; + +export enum ActionType { + CreateTotp = '[member.totp] CreateTotp', + CreateTotpSuccess = '[member.totp] CreateTotpSuccess', + CreateTotpFailure = '[member.totp] CreateTotpFailure', + + Regist = '[member.auth] SigninCookie', + RegistSuccess = '[member.auth] SigninCookieSuccess', + RegistFailure = '[member.auth] SigninCookieFailure', +} + +export class CreateTotp implements Action { + readonly type = ActionType.CreateTotp; + + constructor(public payload: {key: string, uri: string}) {} +} + +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: RESTError) {} +} + +// ---------------------------------------------------------------------------------------- + +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: RESTError) {} +} + +export type Actions = + | CreateTotp + | CreateTotpSuccess + | CreateTotpFailure + | Regist + | RegistSuccess + | RegistFailure + ; diff --git a/src/packages/settings/member/store/totp/totp.effect.spec.ts b/src/packages/settings/member/store/totp/totp.effect.spec.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/packages/settings/member/store/totp/totp.effect.ts b/src/packages/settings/member/store/totp/totp.effect.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/packages/settings/member/store/totp/totp.reducer.ts b/src/packages/settings/member/store/totp/totp.reducer.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/packages/settings/member/store/totp/totp.state.ts b/src/packages/settings/member/store/totp/totp.state.ts new file mode 100644 index 0000000..e69de29