197 lines
4.8 KiB
TypeScript
197 lines
4.8 KiB
TypeScript
import { createURL } from '@src/services/globalUtils';
|
|
import { ActionType, AppState, Member } from './types';
|
|
|
|
const URL_PREFIX = createURL('/houston');
|
|
|
|
export const FETCH_TEAM_DATA = `${URL_PREFIX}/teams`;
|
|
export const FETCH_ALL_BOTS_DATA = `${URL_PREFIX}/bots`;
|
|
export const CREATE_TEAM = `${URL_PREFIX}/teams-v2/add`;
|
|
export const ADD_MEMBER = `${URL_PREFIX}/teams/members`;
|
|
|
|
export const FETCH_SINGLE_TEAM_DATA = (payload: string): string => {
|
|
return `${URL_PREFIX}/teams-v2/${payload}`;
|
|
};
|
|
|
|
export const UPDATE_TEAM_DATA = (): string => {
|
|
return `${URL_PREFIX}/teams-v2`;
|
|
};
|
|
|
|
export const REMOVE_TEAM_MEMBER = (teamId: string, userId: string): string => {
|
|
return `${URL_PREFIX}/teams-v2/${teamId}/members/${userId}`;
|
|
};
|
|
|
|
export const MAKE_MANAGER = (teamId: string, userId: string): string => {
|
|
return `${URL_PREFIX}/teams-v2/${teamId}/manager/${userId}`;
|
|
};
|
|
|
|
export const regularExpression = /^[a-zA-Z][a-zA-Z0-9_ -]{1,48}[a-zA-Z0-9]$/;
|
|
export const validEmail = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
|
|
export const emailRegularExpression = /^[a-zA-Z.]+@navi\.com$/;
|
|
export const DEFAULT_SEVERITY = {
|
|
label: 'Sev-3',
|
|
value: '4',
|
|
};
|
|
|
|
export const actionTypes = {
|
|
SET_OPEN_DIALOG: 'SET_OPEN_DIALOG',
|
|
SET_OPEN_MODAL: 'SET_OPEN_MODAL',
|
|
SET_EMAIL_IDS: 'SET_EMAIL_IDS',
|
|
SET_SEVERITY_ID: 'SET_SEVERITY_ID',
|
|
SET_SELECTED_MEMBER: 'SET_SELECTED_MEMBER',
|
|
SET_HOVERED: 'SET_HOVERED',
|
|
SET_SLACK_CHANNEL_ID: 'SET_SLACK_CHANNEL_ID',
|
|
SET_ONCALL: 'SET_ONCALL',
|
|
SET_PSEC_ONCALL: 'SET_PSEC_ONCALL',
|
|
SET_INPUT: 'SET_INPUT',
|
|
SET_PSEC_INPUT: 'SET_PSEC_INPUT',
|
|
SET_OPEN_ONCALL: 'SET_OPEN_ONCALL',
|
|
SET_PSEC_OPEN_ONCALL: 'SET_PSEC_OPEN_ONCALL',
|
|
SET_TEAM_NAME: 'SET_TEAM_NAME',
|
|
SET_TEAM_NAME_ERROR: 'SET_TEAM_NAME_ERROR',
|
|
SET_EMAIL_ERROR: 'SET_EMAIL_ERROR',
|
|
SET_EMAIL: 'SET_EMAIL',
|
|
SET_CLEAR_MODAL: 'SET_CLEAR_MODAL',
|
|
SET_ADD_MEMBER_ERROR: 'SET_ADD_MEMBER_ERROR',
|
|
};
|
|
|
|
export const DEFAULT_SEVERITY_ID = 4;
|
|
|
|
export const initialState: AppState = {
|
|
openDialog: false,
|
|
openModal: false,
|
|
emailIds: '',
|
|
severityId: DEFAULT_SEVERITY_ID,
|
|
selectedMember: undefined,
|
|
hovered: {
|
|
ishovered: false,
|
|
id: '',
|
|
},
|
|
slackChannelId: '',
|
|
oncall: {
|
|
label: '',
|
|
value: '',
|
|
},
|
|
psecOncall: {
|
|
label: '',
|
|
value: '',
|
|
},
|
|
input: '',
|
|
psecInput: '',
|
|
openOnCall: false,
|
|
openPsecOnCall: false,
|
|
teamName: '',
|
|
teamNameError: '',
|
|
emailError: '',
|
|
email: '',
|
|
clearModal: false,
|
|
addMemberError: '',
|
|
};
|
|
|
|
export const reducer = (state: AppState, action: ActionType): AppState => {
|
|
switch (action.type) {
|
|
case actionTypes.SET_OPEN_DIALOG:
|
|
return {
|
|
...state,
|
|
openDialog: action.payload,
|
|
};
|
|
case actionTypes.SET_OPEN_MODAL:
|
|
return {
|
|
...state,
|
|
openModal: action.payload,
|
|
};
|
|
case actionTypes.SET_EMAIL_IDS:
|
|
return {
|
|
...state,
|
|
emailIds: action.payload,
|
|
};
|
|
case actionTypes.SET_SEVERITY_ID:
|
|
return {
|
|
...state,
|
|
severityId: parseInt(action.payload),
|
|
};
|
|
case actionTypes.SET_SELECTED_MEMBER:
|
|
return {
|
|
...state,
|
|
selectedMember: action.payload,
|
|
};
|
|
case actionTypes.SET_HOVERED:
|
|
return {
|
|
...state,
|
|
hovered: {
|
|
...state.hovered,
|
|
...action.payload,
|
|
},
|
|
};
|
|
case actionTypes.SET_SLACK_CHANNEL_ID:
|
|
return {
|
|
...state,
|
|
slackChannelId: action.payload,
|
|
};
|
|
case actionTypes.SET_ONCALL:
|
|
return {
|
|
...state,
|
|
oncall: action.payload,
|
|
};
|
|
case actionTypes.SET_PSEC_ONCALL:
|
|
return {
|
|
...state,
|
|
psecOncall: action.payload,
|
|
};
|
|
case actionTypes.SET_INPUT:
|
|
return {
|
|
...state,
|
|
input: action.payload,
|
|
};
|
|
case actionTypes.SET_PSEC_INPUT:
|
|
return {
|
|
...state,
|
|
psecInput: action.payload,
|
|
};
|
|
case actionTypes.SET_OPEN_ONCALL:
|
|
return {
|
|
...state,
|
|
openOnCall: action.payload,
|
|
};
|
|
case actionTypes.SET_PSEC_OPEN_ONCALL:
|
|
return {
|
|
...state,
|
|
openPsecOnCall: action.payload,
|
|
};
|
|
case actionTypes.SET_TEAM_NAME:
|
|
return {
|
|
...state,
|
|
teamName: action.payload,
|
|
};
|
|
case actionTypes.SET_TEAM_NAME_ERROR:
|
|
return {
|
|
...state,
|
|
teamNameError: action.payload,
|
|
};
|
|
case actionTypes.SET_EMAIL_ERROR:
|
|
return {
|
|
...state,
|
|
emailError: action.payload,
|
|
};
|
|
case actionTypes.SET_EMAIL:
|
|
return {
|
|
...state,
|
|
email: action.payload,
|
|
};
|
|
case actionTypes.SET_CLEAR_MODAL:
|
|
return {
|
|
...state,
|
|
teamName: '',
|
|
email: '',
|
|
teamNameError: '',
|
|
emailError: '',
|
|
};
|
|
case actionTypes.SET_ADD_MEMBER_ERROR:
|
|
return {
|
|
...state,
|
|
addMemberError: action.payload,
|
|
};
|
|
default:
|
|
return state;
|
|
}
|
|
};
|