component/Reducers/userReducer.js
/**
* User Reducer
* @exports {state} reducer
* @param {object} action
* @return {state} state
*/
export default function reducer(state={
vendorList:[],
user: null,
userID: null,
users: null,
userName: null,
fetching: false,
fetched: false,
error: null,
isLoggedIn:false,
notification:null,
role: -1,
purchasers: null,
vendors: null,
ad: null,
admin: null,
keys_roles: null,
eoi: null,
eoiKey: null,
reqEOI: null,
rfp: null,
rfpKey: null,
rfp_from_eoi: null,
bookmarks: null,
downloadlink:null,
editProfile:{
legalEntity: "loading",
operatingName: "loading",
address1: "loading",
address2: "loading",
city: "loading",
province: "loading",
country: "loading",
postalCode: "loading",
phone: "loading",
fax: "loading",
owner1Name: "loading",
owner1Pos: "loading",
natureBusiness: "loading",
timeBusiness: "loading",
proAffiliation: "loading",
report:"loading",
bank: "loading",
bankLocation: "loading",
bonding: "loading",
bondingLocation: "loading",
insuranceCompany: "loading",
insuranceLocation:"loading",
bondingLimitDate: "loading",
bondingLimit: "loading",
grossBus: "loading",
grossBusYear: "loading",
bankruptcy:"loading",
numEmployees: "loading",
AD1address1: "loading",
AD1address2: "loading",
AD1city: "loading",
AD1province: "loading",
AD1country: "loading",
AD1postalCode: "loading",
AD1phone: "loading",
categories: "loading",
specialties: "loading",
client1: "loading",
client1Location: "loading",
client1Phone: "loading",
client1Email: "loading",
licence1: "loading",
licence1Location: "loading",
insurer1: "loading", policyLimit1: "loading", expiry1: "loading",
insurer2: "loading", policyLimit2: "loading", expiry2: "loading",
insurer3: "loading", policyLimit3: "loading", expiry3: "loading",
insurer4: "loading", policyLimit4: "loading", expiry4: "loading",
insurer5: "loading", policyLimit5: "loading", expiry5: "loading",
insurer6: "loading", policyLimit6: "loading", expiry6: "loading",
insurer7: "loading", policyLimit7: "loading", expiry7: "loading",
insurer8: "loading", policyLimit8: "loading", expiry8: "loading",
insurer9: "loading", policyLimit9: "loading", expiry9: "loading",
insurer10: "loading", policyLimit10: "loading", expiry10: "loading",
insurer11: "loading", policyLimit11: "loading", expiry11: "loading",
insurer12: "loading", policyLimit12: "loading", expiry12: "loading",
insurer13: "loading", policyLimit13: "loading", expiry13: "loading",
insurer14: "loading", policyLimit14: "loading", expiry14: "loading",
insurer15: "loading", policyLimit15: "loading", expiry15: "loading",
EHWcurrentYear: "loading", EHWpreviousYear1: "loading", EHWpreviousYear2: "loading", EHWpreviousYear3: "loading",
FcurrentYear: "loading", FpreviousYear1: "loading", FpreviousYear2: "loading", FpreviousYear3: "loading",
LTIcurrentYear: "loading", LTIpreviousYear1: "loading", LTIpreviousYear2: "loading", LTIpreviousYear3: "loading",
MAIcurrentYear: "loading", MAIpreviousYear1: "loading", MAIpreviousYear2: "loading", MAIpreviousYear3: "loading",
ORCcurrentYear: "loading", ORCpreviousYear1: "loading", ORCpreviousYear2: "loading", ORCpreviousYear3: "loading",
TRIcurrentYear: "loading", TRIpreviousYear1: "loading", TRIpreviousYear2: "loading", TRIpreviousYear3: "loading",
IRcurrentYear: "loading", IRpreviousYear1: "loading", IRpreviousYear2: "loading", IRpreviousYear3: "loading",
PRcurrentYear: "loading", PRpreviousYear1: "loading", PRpreviousYear2: "loading", PRpreviousYear3: "loading",
PDcurrentYear: "loading", PDpreviousYear1: "loading", PDpreviousYear2: "loading", PDpreviousYear3: "loading",
PScurrentYear: "loading", PSpreviousYear1: "loading", PSpreviousYear2: "loading", PSpreviousYear3: "loading",
drugPolicy: "loading",
subcontractors: "loading",
stopWorkOrder: "loading",
email: "loading",
adminContact: "loading",
technicalContact: "loading",
ISnumber:"loading",
website: "loading",
password: "loading",
// different variables for purchasers
gstReg: "loading",
billAddress1:"loading",
billAddress2:"loading",
billCity:"loading",
billProvince:"loading",
billCountry:"loading",
billPostalCode:"loading",
accntRec: "loading",
jointVenture: "loading",
},
profile:{
role:-1,
firstName: null,
// *TODO*
// add more attribute here in model
// null as default, i copie role into outer scope for convenience :)
},
}, action) {
switch (action.type) {
case "FETCH_USER": {
return {...state,
fetching: true}
}
case "FETCH_USER_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "FETCH_USER_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
user: action.payload,
isLoggedIn: action.isLoggedIn,
editProfile: action.payload
}
}
case "FETCH_PURCHASER_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
isLoggedIn:undefined,
purchasers: action.payload,
}
}
case "FETCH_VENDOR_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
isLoggedIn:undefined,
vendors: action.payload,
}
}
case "FETCH_AD_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
isLoggedIn:undefined,
ad: action.payload,
}
}
// returns the admin information
case "FETCH_ADMIN_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
admin: action.payload,
}
}
case "SIGNUP_USER": {
return {
...state,
fetching: true,
}
}
case "SIGNUP_USER_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
}
}
case "SIGNUP_USER_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "UPDATE_USER_PROFILE": {
return {
...state,
fetching: true,
}
}
case "UPDATE_USER_PROFILE_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
}
}
case "UPDATE_USER_PROFILE_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "UPLOAD_ANNUAL_REPORT": {
return {
...state,
uploaded: false,
fetching: true
}
}
case "UPLOAD_ANNUAL_REPORT_FULFILLED": {
return {
...state,
uploaded: true,
fetching: false,
downloadlink: action.payload
}
}
case "UPLOAD_ANNUAL_REPORT_REJECTED": {
return {
...state,
fetching: false
}
}
case "FETCH_USER_PROFILE": {
return {
...state,
fetching: true,
}
}
case "FETCH_USER_PROFILE_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
isLoggedIn:true,
user: action.payload,
profile:action.payload,
userID: action.userid,
role: action.payload.role,
}
}
case "FETCH_USER_PROFILE_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "LOGIN_USER": {
return {
...state,
fetching: true,
}
}
case "LOGIN_USER_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
user: action.payload,
userName: action.payload.email,
isLoggedIn:true,
}
}
case "LOGIN_USER_REJECTED": {
return {
...state,
fetching: false,
isLoggedIn: false,
error: action.payload
}
}
case "LOGOUT_USER": {
return {
...state,
fetching: true,
fetched: false,
}
}
case "LOGOUT_USER_FULFILLED": {
return{
...state,
fetching: false,
fetched: true,
user: null,
role: null,
isLoggedIn: false,
purchasers: null,
vendors: null,
ad: null,
}
}
case "LOGOUT_USER_REJECTED": {
return {
...state,
fetching: false,
isLoggedIn: true,
error: action.payload
}
}
case "FETCH_KEYS_ROLES_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
keys_roles: action.payload,
}
}
case "FETCH_KEYS_ROLES_REJECTED": {
return {
...state,
fetching: false,
error: action.payload,
}
}
case "STORE_KEYS_ROLES_FULFILLED": {
return {
...state,
fetching: false,
fetching: true,
}
}
case "STORE_KEYS_ROLES_REJECTED": {
return {
...state,
fetching: false,
error: action.payload,
}
}
case "STORE_EOI_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
}
}
case "STORE_EOI_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "FETCH_EOI_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
eoi: action.payload,
}
}
case "FETCH_EOI_REJECTED": {
return {
...state,
fetching: false,
error: action.payload,
}
}
case "STORE_REQ_EOI_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
}
}
case "STORE_REQ_EOI_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "FETCH_REQ_EOI_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
reqEOI: action.payload,
}
}
case "FETCH_REQ_EOI_REJECTED": {
return {
...state,
fetching: false,
error: action.payload,
}
}
case "STORE_EOI_KEY_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
}
}
case "STORE_EOI_KEY_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "FETCH_EOI_KEY_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
eoiKey: action.payload,
}
}
case "FETCH_EOI_KEY_REJECTED": {
return {
...state,
fetching: false,
error: action.payload,
}
}
case "REMOVED_EOI_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
}
}
case "REMOVED_RFP_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
}
}
case "FETCH_RFP_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
rfp: action.payload,
}
}
case "FETCH_RFP_REJECTED": {
return {
...state,
fetching: false,
error: action.payload,
}
}
case "STORE_RFP_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
}
}
case "STORE_RFP_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "FETCH_RFP_FROM_EOI_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
rfp_from_eoi: action.payload,
}
}
case "FETCH_RFP_FROM_EOI_REJECTED": {
return {
...state,
fetching: false,
error: action.payload,
}
}
case "STORE_RFP_FROM_EOI_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
}
}
case "STORE_RFP_FROM_EOI_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "FETCH_USERS_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
users: action.payload,
}
}
case "FETCH_USERS_REJECTED": {
return {
...state,
fetching: false,
error: action.payload,
}
}
case "STORE_RFP_KEY_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
}
}
case "STORE_RFP_KEY_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "FETCH_RFP_KEY_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
rfpKey: action.payload
}
}
case "FETCH_RFP_KEY_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "UPDATE_RFP": {
return {
...state,
fetching: false,
fetched:true,
}
}
case "UPDATE_RFP_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
}
}
case "UPDATE_RFP_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "FETCH_NOTIFICATION_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
notification: action.payload,
}
}
case "FETCH_NOTIFICATION_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "SET_NOTIFICATION_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
}
}
case "SET_NOTIFICATION_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "FETCH_BOOKMARKS_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
bookmarks: action.payload,
}
}
case "FETCH_BOOKMARKS_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
case "SET_BOOKMARKS_FULFILLED": {
return {
...state,
fetching: false,
fetched:true,
}
}
case "SET_BOOKMARKS_REJECTED": {
return {
...state,
fetching: false,
error: action.payload
}
}
}
return state
}