Migrate authorize{ actions, actionType, reducer} to TS & make factory service for interfaces #15
This commit is contained in:
@@ -1,53 +0,0 @@
|
||||
// - Import action types
|
||||
import * as types from 'actionTypes'
|
||||
|
||||
|
||||
/**
|
||||
* Default state
|
||||
*/
|
||||
var defaultState = {
|
||||
uid: 0,
|
||||
authed: false,
|
||||
updatePassword: false,
|
||||
guest:false
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Authorize reducer
|
||||
* @param {object} state
|
||||
* @param {object} action
|
||||
*/
|
||||
export var authorizeReducer = (state = defaultState, action) =>{
|
||||
switch (action.type) {
|
||||
case types.LOGIN:
|
||||
return{
|
||||
...state,
|
||||
uid: action.uid,
|
||||
authed: true,
|
||||
guest:false
|
||||
}
|
||||
case types.LOGOUT:
|
||||
return{
|
||||
...state,
|
||||
uid: 0,
|
||||
authed: false,
|
||||
guest:true
|
||||
}
|
||||
|
||||
case types.SIGNUP:
|
||||
return{
|
||||
...state,
|
||||
uid: action.uid
|
||||
}
|
||||
case types.UPDATE_PASSWORD:
|
||||
return{
|
||||
...state,
|
||||
updatePassword: action.updatePassword
|
||||
}
|
||||
default:
|
||||
return state
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
96
app/reducers/authorizeReducer.ts
Normal file
96
app/reducers/authorizeReducer.ts
Normal file
@@ -0,0 +1,96 @@
|
||||
// - Import react components
|
||||
import {Reducer, Action} from "redux";
|
||||
|
||||
// - Import action types
|
||||
import {AuthorizeActionType} from 'constants/authorizeActionType'
|
||||
|
||||
|
||||
/**
|
||||
* Default state
|
||||
*/
|
||||
var defaultState = {
|
||||
uid: 0,
|
||||
authed: false,
|
||||
updatePassword: false,
|
||||
guest:false
|
||||
}
|
||||
|
||||
/**
|
||||
* Default post state interface
|
||||
*
|
||||
* @export
|
||||
* @interface IAuthorizeState
|
||||
*/
|
||||
export interface IAuthorizeState {
|
||||
uid: number,
|
||||
authed: Boolean,
|
||||
updatePassword: Boolean,
|
||||
guest:Boolean
|
||||
}
|
||||
|
||||
/**
|
||||
* Default authorize action interface
|
||||
*
|
||||
* @export
|
||||
* @interface IAuthorizeAction
|
||||
*/
|
||||
export interface IAuthorizeAction {
|
||||
payload: any,
|
||||
type: AuthorizeActionType
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Default authorize reducer state
|
||||
*
|
||||
* @export
|
||||
* @class DefaultAuthorizeState
|
||||
* @implements {IAuthorizeState}
|
||||
*/
|
||||
export class DefaultAuthorizeState implements IAuthorizeState{
|
||||
uid: number = 0;
|
||||
authed: Boolean = false;
|
||||
updatePassword: Boolean = false;
|
||||
guest: Boolean = false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Authorize reducer
|
||||
* @param {object} state
|
||||
* @param {object} action
|
||||
*/
|
||||
export var authorizeReducer = (state : IAuthorizeState = new DefaultAuthorizeState(), action: IAuthorizeAction) =>{
|
||||
const { payload } = action;
|
||||
switch (action.type) {
|
||||
case AuthorizeActionType.LOGIN:
|
||||
return{
|
||||
...state,
|
||||
uid: payload.uid,
|
||||
authed: true,
|
||||
guest:false
|
||||
}
|
||||
case AuthorizeActionType.LOGOUT:
|
||||
return{
|
||||
...state,
|
||||
uid: 0,
|
||||
authed: false,
|
||||
guest:true
|
||||
}
|
||||
|
||||
case AuthorizeActionType.SIGNUP:
|
||||
return{
|
||||
...state,
|
||||
uid: payload.userId
|
||||
}
|
||||
case AuthorizeActionType.UPDATE_PASSWORD:
|
||||
return{
|
||||
...state,
|
||||
updatePassword: payload.updatePassword
|
||||
}
|
||||
default:
|
||||
return state
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import {Reducer, Action} from "redux";
|
||||
|
||||
|
||||
// - Import action types
|
||||
import { postActionType } from "constants/postActionType";
|
||||
import { PostActionType } from "constants/postActionType";
|
||||
|
||||
/* ---------------- */
|
||||
|
||||
@@ -28,15 +28,22 @@ export interface IPostState {
|
||||
*
|
||||
*
|
||||
* @export
|
||||
* @interface postState
|
||||
* @interface IPostAction
|
||||
*/
|
||||
export interface IPostAction {
|
||||
payload: any,
|
||||
type: postActionType
|
||||
type: PostActionType
|
||||
|
||||
}
|
||||
|
||||
export class defaultPostState implements IPostState{
|
||||
/**
|
||||
* Default post reducer state
|
||||
*
|
||||
* @export
|
||||
* @class DefaultPostState
|
||||
* @implements {IPostState}
|
||||
*/
|
||||
export class DefaultPostState implements IPostState{
|
||||
userPosts: any = {};
|
||||
loaded: boolean = false;
|
||||
|
||||
@@ -47,13 +54,13 @@ export class defaultPostState implements IPostState{
|
||||
* @param {object} state
|
||||
* @param {object} action
|
||||
*/
|
||||
export var postReducer = (state : IPostState = new defaultPostState(), action : IPostAction) => {
|
||||
const { payload } = action
|
||||
export var postReducer = (state : IPostState = new DefaultPostState(), action : IPostAction) => {
|
||||
const { payload } = action;
|
||||
switch (action.type) {
|
||||
case postActionType.CLEAR_ALL_DATA_POST:
|
||||
return new defaultPostState()
|
||||
case PostActionType.CLEAR_ALL_DATA_POST:
|
||||
return new DefaultPostState()
|
||||
|
||||
case postActionType.ADD_IMAGE_POST:
|
||||
case PostActionType.ADD_IMAGE_POST:
|
||||
return {
|
||||
...state,
|
||||
userPosts: {
|
||||
@@ -65,7 +72,7 @@ export var postReducer = (state : IPostState = new defaultPostState(), action :
|
||||
}
|
||||
}
|
||||
|
||||
case postActionType.ADD_POST:
|
||||
case PostActionType.ADD_POST:
|
||||
return {
|
||||
...state,
|
||||
userPosts: {
|
||||
@@ -77,7 +84,7 @@ export var postReducer = (state : IPostState = new defaultPostState(), action :
|
||||
}
|
||||
}
|
||||
|
||||
case postActionType.UPDATE_POST:
|
||||
case PostActionType.UPDATE_POST:
|
||||
return {
|
||||
...state,
|
||||
userPosts: {
|
||||
@@ -92,7 +99,7 @@ export var postReducer = (state : IPostState = new defaultPostState(), action :
|
||||
}
|
||||
}
|
||||
|
||||
case postActionType.DELETE_POST:
|
||||
case PostActionType.DELETE_POST:
|
||||
let filteredPosts = {}
|
||||
Object.keys(state.userPosts[payload.uid]).map((key) => {
|
||||
if (key !== payload.id) {
|
||||
@@ -108,7 +115,7 @@ export var postReducer = (state : IPostState = new defaultPostState(), action :
|
||||
}
|
||||
}
|
||||
}
|
||||
case postActionType.ADD_LIST_POST:
|
||||
case PostActionType.ADD_LIST_POST:
|
||||
return {
|
||||
...state,
|
||||
userPosts: {
|
||||
|
||||
Reference in New Issue
Block a user