Skip to content
Snippets Groups Projects
Forked from an inaccessible project.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
note.actions.ts 1.21 KiB
import { Action } from '@ngrx/store';
import { Note } from '@app/core/models/note';
import { TermCode } from '@app/core/models/termcode';

export enum NoteActionTypes {
  WriteNote = '[Note] Write',
  WriteNoteSuccess = '[Note] Write (Success)',

  DeleteNote = '[Note] Delete',
  DeleteNoteSuccess = '[Note] Delete (Success)',

  NoteError = '[Note] Error',
}

export class WriteNote implements Action {
  public readonly type = NoteActionTypes.WriteNote;
  constructor(public payload: { termCode: TermCode; noteText: string }) {}
}

export class WriteNoteSuccess implements Action {
  public readonly type = NoteActionTypes.WriteNoteSuccess;
  constructor(public payload: { updatedNote: Note }) {}
}

export class DeleteNote implements Action {
  public readonly type = NoteActionTypes.DeleteNote;
  constructor(public payload: { termCode: TermCode; noteId: number }) {}
}

export class DeleteNoteSuccess implements Action {
  public readonly type = NoteActionTypes.DeleteNoteSuccess;
  constructor(public payload: { termCode: TermCode }) {}
}

export class NoteError implements Action {
  public readonly type = NoteActionTypes.NoteError;
  constructor(
    public payload: { message: string; duration: number; error: any },
  ) {}
}