Skip to content

Instantly share code, notes, and snippets.

@dongjinahn
Created December 26, 2020 16:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dongjinahn/7887a689d53d682ce5866fc26b50062b to your computer and use it in GitHub Desktop.
Save dongjinahn/7887a689d53d682ce5866fc26b50062b to your computer and use it in GitHub Desktop.
import { Injectable } from '@angular/core';
import { dispatch } from '@angular-redux/store';
import { FluxStandardAction } from 'flux-standard-action';
import {
MoodLogPushPayload,
MoodLogRemovePayload,
MoodLogUpdatePayload,
MoodLogPostPayload,
MoodLogDeletePayload,
MoodLogAssignPayload,
MoodLogPutPayload,
} from './mood.model';
// * actions
export type MoodLogGetAction = FluxStandardAction<null, null>;
export type MoodLogPostAction = FluxStandardAction<MoodLogPostPayload, null>;
export type MoodLogPutAction = FluxStandardAction<MoodLogPutPayload, null>;
export type MoodLogDeleteAction = FluxStandardAction<MoodLogDeletePayload, null>;
// * mutations
export type MoodLogPushAction = FluxStandardAction<MoodLogPushPayload, null>;
export type MoodLogUpdateAction = FluxStandardAction<MoodLogUpdatePayload, null>;
export type MoodLogAssignAction = FluxStandardAction<MoodLogAssignPayload, null>;
export type MoodLogRemoveAction = FluxStandardAction<MoodLogRemovePayload, null>;
@Injectable()
export class MoodActions {
// * actions
static readonly GET_LOGS = 'MOOD_GET_LOGS';
static readonly POST_LOG = 'MOOD_POST_LOG';
static readonly PUT_LOG = 'MOOD_PUT_LOG';
static readonly DELETE_LOG = 'MOOD_DELETE_LOG';
@dispatch()
getLogs = (): MoodLogGetAction => ({
type: MoodActions.GET_LOGS,
payload: null,
meta: null,
})
@dispatch()
postLog = (payload: MoodLogPostPayload): MoodLogPostAction => ({
type: MoodActions.POST_LOG,
payload,
meta: null,
})
@dispatch()
putLog = (payload: MoodLogPutPayload): MoodLogPutAction => ({
type: MoodActions.PUT_LOG,
payload,
meta: null,
})
@dispatch()
deleteLog = (payload: MoodLogDeletePayload): MoodLogDeleteAction => ({
type: MoodActions.DELETE_LOG,
payload,
meta: null,
})
// * mutations
static readonly PUSH_LOG = 'MOOD_PUSH_LOG';
static readonly UPDATE_LOGS = 'MOOD_UPDATE_LOGS';
static readonly ASSIGN_LOG = 'MOOD_ASSIGN_LOG';
static readonly REMOVE_LOG = 'MOOD_REMOVE_LOG';
@dispatch()
pushLog = (payload: MoodLogPushPayload): MoodLogPushAction => ({
type: MoodActions.PUSH_LOG,
payload,
meta: null,
})
@dispatch()
updateLogs = (payload: MoodLogUpdatePayload): MoodLogUpdateAction => ({
type: MoodActions.UPDATE_LOGS,
payload,
meta: null,
})
@dispatch()
assignLog = (payload: MoodLogAssignPayload): MoodLogAssignAction => ({
type: MoodActions.ASSIGN_LOG,
payload,
meta: null,
})
@dispatch()
removeLog = (payload: MoodLogRemovePayload): MoodLogRemoveAction => ({
type: MoodActions.REMOVE_LOG,
payload,
meta: null,
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment