Я пытаюсь реализовать ngrx, и у меня есть несколько вызовов API. Для каждого из них наилучшей практикой, по-видимому, является добавление успеха и неудачи, чтобы мой эффект распределял точное вспомогательное действие. но файл действий уже очень большой, и это всего лишь 6 вызовов ...
import { HttpErrorResponse } from '@angular/common/http';
import { Action } from '@ngrx/store';
import { IOrganization } from './organization.models';
export enum ActionTypes {
GetOrganizationsRequest = '[Organizations] Get Organizations Request',
GetOrganizationsSuccess = '[Organizations] Get Organizations Success',
GetOrganizationsFailed = '[Organizations] Get Organizations Failed',
PostOrganizationsRequest = '[Organizations] Post Organizations Request',
PostOrganizationsSuccess = '[Organizations] Post Organizations Success',
PostOrganizationsFailed = '[Organizations] Post Organizations Failed',
UpdateOrganizationRequest = '[Organizations] Update Organizations Request',
UpdateOrganizationSuccess = '[Organizations] Update Organizations Success',
UpdateOrganizationFailed = '[Organizations] Update Organizations Failed',
RefreshOrganizationRequest = '[Organizations] Refresh Organizations Request',
RefreshOrganizationSuccess = '[Organizations] Refresh Organizations Success',
RefreshOrganizationFailed = '[Organizations] Refresh Organizations Failed',
DeleteOrganizationRequest = '[Organizations] Delete Organizations Request',
DeleteOrganizationSuccess = '[Organizations] Delete Organizations Success',
DeleteOrganizationFailed = '[Organizations] Delete Organizations Failed',
GetOrganizationsUsersRequest = '[Organizations] Get Users Organizations Request',
GetOrganizationsUsersSuccess = '[Organizations] Get Users Organizations Success',
GetOrganizationsUsersFailed = '[Organizations] Get Users Organizations Failed',
}
export class GetOrganizationsRequest implements Action {
public readonly type = ActionTypes.GetOrganizationsRequest;
constructor() {}
}
export class GetOrganizationsSuccess implements Action {
public readonly type = ActionTypes.GetOrganizationsSuccess;
constructor(public payload: {organization: Array<IOrganization>}) {}
}
export class GetOrganizationsFailed implements Action {
public readonly type = ActionTypes.GetOrganizationsFailed;
constructor(public payload: {error: HttpErrorResponse}) {}
}
export class PostOrganizationsRequest implements Action {
public readonly type = ActionTypes.PostOrganizationsRequest;
constructor(public payload: {organization: IOrganization}) {}
}
export class PostOrganizationsSuccess implements Action {
public readonly type = ActionTypes.PostOrganizationsSuccess;
constructor(public payload: {response: any}) {}
}
export class PostOrganizationsFailed implements Action {
public readonly type = ActionTypes.PostOrganizationsFailed;
constructor(public payload: {error: HttpErrorResponse}) {}
}
export class UpdateOrganizationRequest implements Action {
public readonly type = ActionTypes.GetOrganizationsRequest;
constructor(public payload: {organizationId: string, organization: IOrganization}) {}
}
export class UpdateOrganizationSuccess implements Action {
public readonly type = ActionTypes.UpdateOrganizationSuccess;
constructor(public payload: {response: any}) {}
}
export class UpdateOrganizationFailed implements Action {
public readonly type = ActionTypes.UpdateOrganizationFailed;
constructor(public payload: {error: HttpErrorResponse}) {}
}
export class RefreshOrganizationRequest implements Action {
public readonly type = ActionTypes.RefreshOrganizationRequest;
constructor(public payload: {organizationId: string}) {}
}
export class RefreshOrganizationSuccess implements Action {
public readonly type = ActionTypes.RefreshOrganizationSuccess;
constructor(public payload: {response: any}) {}
}
export class RefreshOrganizationFailed implements Action {
public readonly type = ActionTypes.RefreshOrganizationFailed;
constructor(public payload: {error: HttpErrorResponse}) {}
}
export class DeleteOrganizationRequest implements Action {
public readonly type = ActionTypes.DeleteOrganizationRequest;
constructor(public payload: {organizationId: string}) {}
}
export class DeleteOrganizationSuccess implements Action {
public readonly type = ActionTypes.DeleteOrganizationSuccess;
constructor(public payload: {response: any}) {}
}
export class DeleteOrganizationFailed implements Action {
public readonly type = ActionTypes.DeleteOrganizationFailed;
constructor(public payload: {error: HttpErrorResponse}) {}
}
export class GetOrganizationsUsersRequest implements Action {
public readonly type = ActionTypes.GetOrganizationsUsersRequest;
constructor(public payload: {organizationId: string}) {}
}
export class GetOrganizationsUsersSuccess implements Action {
public readonly type = ActionTypes.GetOrganizationsUsersSuccess;
constructor(public payload: {response: any}) {}
}
export class GetOrganizationsUsersFailed implements Action {
public readonly type = ActionTypes.GetOrganizationsUsersFailed;
constructor(public payload: {error: HttpErrorResponse}) {}
}
export type Actions = GetOrganizationsRequest |
GetOrganizationsSuccess |
GetOrganizationsFailed |
PostOrganizationsRequest |
PostOrganizationsSuccess |
PostOrganizationsFailed |
UpdateOrganizationRequest |
UpdateOrganizationSuccess |
UpdateOrganizationFailed |
RefreshOrganizationRequest |
RefreshOrganizationSuccess |
RefreshOrganizationFailed |
DeleteOrganizationRequest |
DeleteOrganizationSuccess |
DeleteOrganizationFailed |
GetOrganizationsUsersRequest |
GetOrganizationsUsersSuccess |
GetOrganizationsUsersFailed;
Сколько действий содержит большое угловое приложение, не правда ли?