src/app/drafts/state/draft.actions.ts
import { Action } from '@ngrx/store';
import { Update } from '@ngrx/entity';
import { DraftModel } from './draft.model';
export enum DraftActionTypes {
LoadDrafts = '[Draft] Load Drafts',
AddDraft = '[Draft] Add Draft',
UpsertDraft = '[Draft] Upsert Draft',
AddDrafts = '[Draft] Add Drafts',
UpsertDrafts = '[Draft] Upsert Drafts',
UpdateDraft = '[Draft] Update Draft',
UpdateDrafts = '[Draft] Update Drafts',
DeleteDraft = '[Draft] Delete Draft',
DeleteDrafts = '[Draft] Delete Drafts',
ClearDrafts = '[Draft] Clear Drafts',
LoadDraftsSuccess = '[Draft] Load Drafts Success',
AddDraftSuccess = '[Draft] Add Draft Success',
UpsertDraftSuccess = '[Draft] Upsert Draft Success',
AddDraftsSuccess = '[Draft] Add Drafts Success',
UpsertDraftsSuccess = '[Draft] Upsert Drafts Success',
UpdateDraftSuccess = '[Draft] Update Draft Success',
UpdateDraftsSuccess = '[Draft] Update Drafts Success',
DeleteDraftSuccess = '[Draft] Delete Draft Success',
DeleteDraftsSuccess = '[Draft] Delete Drafts Success',
ClearDraftsSuccess = '[Draft] Clear Drafts Success',
LoadDraftsFail = '[Draft] Load Drafts Fail',
AddDraftFail = '[Draft] Add Draft Fail',
UpsertDraftFail = '[Draft] Upsert Draft Fail',
AddDraftsFail = '[Draft] Add Drafts Fail',
UpsertDraftsFail = '[Draft] Upsert Drafts Fail',
UpdateDraftFail = '[Draft] Update Draft Fail',
UpdateDraftsFail = '[Draft] Update Drafts Fail',
DeleteDraftFail = '[Draft] Delete Draft Fail',
DeleteDraftsFail = '[Draft] Delete Drafts Fail',
ClearDraftsFail = '[Draft] Clear Drafts Fail',
}
export class LoadDrafts implements Action {
readonly type = DraftActionTypes.LoadDrafts;
constructor(public payload: { condition: {userId: string} }) {}
}
export class LoadDraftsSuccess implements Action {
readonly type = DraftActionTypes.LoadDraftsSuccess;
constructor(public payload: { drafts: DraftModel[] }) {}
}
export class LoadDraftsFail implements Action {
readonly type = DraftActionTypes.LoadDraftsFail;
constructor(public payload?: { error: any }) {}
}
export class AddDraft implements Action {
readonly type = DraftActionTypes.AddDraft;
constructor(public payload: { draft: DraftModel }) {}
}
export class AddDraftSuccess implements Action {
readonly type = DraftActionTypes.AddDraftSuccess;
constructor(public payload: { draft: DraftModel }) {}
}
export class AddDraftFail implements Action {
readonly type = DraftActionTypes.AddDraftFail;
constructor(public payload?: { error: any }) {}
}
export class UpsertDraft implements Action {
readonly type = DraftActionTypes.UpsertDraft;
constructor(public payload: { draft: DraftModel }) {}
}
export class AddDrafts implements Action {
readonly type = DraftActionTypes.AddDrafts;
constructor(public payload: { drafts: DraftModel[] }) {}
}
export class UpsertDrafts implements Action {
readonly type = DraftActionTypes.UpsertDrafts;
constructor(public payload: { drafts: DraftModel[] }) {}
}
export class UpdateDraft implements Action {
readonly type = DraftActionTypes.UpdateDraft;
constructor(public payload: { draft: Update<DraftModel> }) {}
}
export class UpdateDraftSuccess implements Action {
readonly type = DraftActionTypes.UpdateDraftSuccess;
constructor(public payload: { draft: Update<DraftModel> }) {}
}
export class UpdateDraftFail implements Action {
readonly type = DraftActionTypes.UpdateDraftFail;
constructor(public payload?: { error: any }) {}
}
export class UpdateDrafts implements Action {
readonly type = DraftActionTypes.UpdateDrafts;
constructor(public payload: { drafts: Update<DraftModel>[] }) {}
}
export class DeleteDraft implements Action {
readonly type = DraftActionTypes.DeleteDraft;
constructor(public payload: { id: string }) {}
}
export class DeleteDraftSuccess implements Action {
readonly type = DraftActionTypes.DeleteDraftSuccess;
constructor(public payload: { draft: DraftModel }) {}
}
export class DeleteDraftFail implements Action {
readonly type = DraftActionTypes.DeleteDraftFail;
constructor(public payload?: { error: any }) {}
}
export class DeleteDrafts implements Action {
readonly type = DraftActionTypes.DeleteDrafts;
constructor(public payload: { ids: string[] }) {}
}
export class ClearDrafts implements Action {
readonly type = DraftActionTypes.ClearDrafts;
}
export type DraftActions =
// 複数件取得
LoadDrafts
| LoadDraftsSuccess
| LoadDraftsFail
// 一件追加
| AddDraft
| AddDraftSuccess
| AddDraftFail
| UpsertDraft
| AddDrafts
| UpsertDrafts
// 一件更新
| UpdateDraft
| UpdateDraftSuccess
| UpdateDraftFail
| UpdateDrafts
// 一件削除
| DeleteDraft
| DeleteDraftSuccess
| DeleteDraftFail
| DeleteDrafts
| ClearDrafts;