Newer
Older
import { ApiError } from '@goofy-client/tech-shared';
import { UserProfileResource } from '@goofy-client/user-profile-shared';
import { ActionCreator, createAction, props } from '@ngrx/store';
import { TypedAction } from '@ngrx/store/src/models';
import { UserSettings, UserSettingsResource } from '../user-settings.model';

OZGCloud
committed
//TODO centralize ActionCreate
export interface UserSettingsActionCreator<T> extends ActionCreator<string, (props: T) => T & TypedAction<string>> { }
export interface TypedActionCreator extends ActionCreator<string, () => TypedAction<string>> { }
export interface UserProfileAction {
currentUser: UserProfileResource
}

OZGCloud
committed

OZGCloud
committed
export interface LoadedUserSettingsAction {
userSettings: UserSettingsResource
}
export interface SetUserSettingsAction {
userSettings: UserSettings
}
export interface ApiErrorAction {
apiError: ApiError
}
export const loadUserSettings: UserSettingsActionCreator<UserProfileAction> = createAction(
'[UserSettings] Load UserSettings',
props<{ currentUser: UserProfileResource }>()
);

OZGCloud
committed
export const loadUserSettingsSuccess: UserSettingsActionCreator<LoadedUserSettingsAction> = createAction(

OZGCloud
committed
'[UserSettings/API] Load UserSettings Success',
props<{ userSettings: UserSettingsResource }>()

OZGCloud
committed
);
export const loadUserSettingsFailure: UserSettingsActionCreator<ApiErrorAction> = createAction(

OZGCloud
committed
'[UserSettings/API] Load UserSettings Failure',
props<ApiErrorAction>()

OZGCloud
committed
);
export const setUserSettings: UserSettingsActionCreator<SetUserSettingsAction> = createAction(
'[UserSettings] Set UserSettings',
props<{ userSettings: UserSettings }>()
);

OZGCloud
committed
export const setUserSettingsSuccess: UserSettingsActionCreator<LoadedUserSettingsAction> = createAction(
'[UserSettings/API] Set UserSettings Success',
props<{ userSettings: UserSettingsResource }>()
);
export const setUserSettingsFailure: UserSettingsActionCreator<ApiErrorAction> = createAction(
'[UserSettings/API] Set UserSettings Failure',
props<ApiErrorAction>()
);