import { History } from 'history';
import { UserInfo } from '../userProfile';
import { ErrorAction } from './action.types';
export enum Actions {
logIn = 'login.logIn',
logOut = 'login.logOut',
error = 'login.error',
getUser = 'login.getUser',
getUserResult = 'login.getUserResult',
setAccessToken = 'login.setAccessToken'
}
//tslint:disable:no-reserved-keywords
export interface LoginAction extends ErrorAction {
type: Actions.logIn;
history: History;
}
export interface LogoutAction extends ErrorAction {
type: Actions.logOut;
user?: UserInfo;
}
export interface GetLoggedInUser extends ErrorAction {
type: Actions.getUser;
}
export interface GetLoggedInUserSucceeded extends ErrorAction {
type: Actions.getUserResult;
user: UserInfo;
}
export interface SetAccessTokenAction extends ErrorAction {
type: Actions.setAccessToken;
token: string;
}
export type LoginActions = LoginAction | LogoutAction |
GetLoggedInUser | GetLoggedInUserSucceeded |
SetAccessTokenAction;
export function login(history): LoginAction {
return {
type: Actions.logIn,
history
};
}
export function logout(user?: UserInfo): LogoutAction {
return {
type: Actions.logOut,
user
};
}
export function getLoggedInUser(): GetLoggedInUser {
return {
type: Actions.getUser
};
}
export function getLoggedInUserSucceeded(user: UserInfo): GetLoggedInUserSucceeded {
return {
type: Actions.getUserResult,
user
};
}
export function setAccessToken(token: string): SetAccessTokenAction {
return {
type: Actions.setAccessToken,
token
};
}
|