Skip to content

Commit

Permalink
10007: Move maintenance actions into a named folder, refactor endpoin…
Browse files Browse the repository at this point in the history
…t to have consistent casing, remove todo comments that have been completed
  • Loading branch information
rachelschneiderman committed Dec 20, 2023
1 parent 1da58ce commit ba1d19e
Show file tree
Hide file tree
Showing 15 changed files with 32 additions and 48 deletions.
10 changes: 6 additions & 4 deletions temp_delete_me.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,19 @@
- web-client/integration-tests/admissionsClerkCreatesPractitionerAccount.test.ts
- web-client/integration-tests/admissionsClerkCreatesPractitionerAccount.test.ts
- web-client/integration-tests/petitionerCreatesAccount.test.ts
- web-client/src/presenter/sequences/Login/refreshTokenSequence.ts



::: STUFF TO DO :::
- finish all todos
- finish all todos (review together - KS)

- ensure back works right (public to private and back)
- error handling
- fix tests
- email verification flow (just after verifying, are we going to new login with verification success message)
- create account (move to private - client site)
- create account (move to private - client site)
- Refactor ifHasAccess Function to be handled by router + initSequence
- delete isLoggedInAction.π

- Refactor maintenance mode to be handled by router + initSequence. No other sequence needs to branch because of it.
- invalidate old refreshToken and idToken upon refresh.
- Ensure idToken lasts longer than how often we are refreshing the idToken (REFRESH_INTERVAL)
Expand All @@ -26,6 +27,7 @@

::: SOLO TO DO :::
- consistent (LoginInteractor). Lets go with Login.
- delete isLoggedInAction. (Seems to be working now - KS)


::: ON HOLD :::
Expand Down
2 changes: 1 addition & 1 deletion web-api/src/business/useCases/auth/logInInteractor.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ServerApplicationContext } from '@web-api/applicationContext';

export const logInInteractor = async (
export const loginInteractor = async (
applicationContext: ServerApplicationContext,
{ email, password }: { email: string; password: string },
): Promise<{ idToken: string; accessToken: string; refreshToken: string }> => {
Expand Down
4 changes: 2 additions & 2 deletions web-api/src/getUseCases.ts
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ import { getUsersInSectionInteractor } from '../../shared/src/business/useCases/
import { getUsersPendingEmailInteractor } from '../../shared/src/business/useCases/users/getUsersPendingEmailInteractor';
import { getWorkItemInteractor } from '../../shared/src/business/useCases/workitems/getWorkItemInteractor';
import { handleBounceNotificationInteractor } from '../../shared/src/business/useCases/email/handleBounceNotificationInteractor';
import { logInInteractor } from '@web-api/business/useCases/auth/logInInteractor';
import { loginInteractor } from '@web-api/business/useCases/auth/loginInteractor';
import { onConnectInteractor } from '../../shared/src/business/useCases/notifications/onConnectInteractor';
import { onDisconnectInteractor } from '../../shared/src/business/useCases/notifications/onDisconnectInteractor';
import { opinionAdvancedSearchInteractor } from '../../shared/src/business/useCases/opinionAdvancedSearchInteractor';
Expand Down Expand Up @@ -351,7 +351,7 @@ const useCases = {
getUsersPendingEmailInteractor,
getWorkItemInteractor,
handleBounceNotificationInteractor,
logInInteractor,
loginInteractor,
onConnectInteractor,
onDisconnectInteractor,
opinionAdvancedSearchInteractor,
Expand Down
2 changes: 1 addition & 1 deletion web-api/src/lambdas/auth/logInLambda.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export const logInLambda = event =>
async ({ applicationContext }) => {
const { accessToken, idToken, refreshToken } = await applicationContext
.getUseCases()
.logInInteractor(applicationContext, { ...JSON.parse(event.body) });
.loginInteractor(applicationContext, { ...JSON.parse(event.body) });

const expiresAt = applicationContext.getUtilities().calculateISODate({
dateString: applicationContext.getUtilities().createISODateString(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { applicationContextForClient as applicationContext } from '@web-client/test/createClientTestApplicationContext';
import { getMaintenanceModeAction } from './getMaintenanceModeAction';
import { presenter } from '../presenter-mock';
import { presenter } from '../../presenter-mock';
import { runAction } from '@web-client/presenter/test.cerebral';

describe('getMaintenanceModeAction', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { applicationContextForClient as applicationContext } from '@web-client/test/createClientTestApplicationContext';
import { getMaintenanceModeForPublicAction } from './getMaintenanceModeForPublicAction';
import { presenter } from '../presenter-mock';
import { presenter } from '../../presenter-mock';
import { runAction } from '@web-client/presenter/test.cerebral';

describe('getMaintenanceModeForPublicAction', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { state } from '@web-client/presenter/app.cerebral';

export const isMaintenanceModeEngagedAction = ({ get, path }: ActionProps) => {
const maintenanceMode = get(state.maintenanceMode);

if (maintenanceMode) {
return path.maintenanceModeOn();
}
return path.maintenanceModeOff();
};
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ const errorHandler = (e, cognitoRequestPasswordResetUrl) => {
if (originalErrorMessage === 'User already exists') {
return {
alertError: {
alertType: 'warning', // TODO 10007: Cannot use /login on public site. Maybe make /login on public side take you to private login?
alertType: 'warning',
message: `This email address is already associated with an account. You can <a href="/login">log in here</a>. If you forgot your password, you can <a href="${cognitoRequestPasswordResetUrl}">request a password reset</a>.`,
title: 'Email address already has an account',
},
Expand Down
2 changes: 0 additions & 2 deletions web-client/src/presenter/presenter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,6 @@ import { printTrialCalendarSequence } from './sequences/printTrialCalendarSequen
import { prioritizeCaseSequence } from './sequences/prioritizeCaseSequence';
import { refreshPdfSequence } from './sequences/refreshPdfSequence';
import { refreshStatisticsSequence } from './sequences/refreshStatisticsSequence';
import { refreshTokenSequence } from '@web-client/presenter/sequences/Login/refreshTokenSequence';
import { removeBatchSequence } from './sequences/removeBatchSequence';
import { removeCaseDetailPendingItemSequence } from './sequences/removeCaseDetailPendingItemSequence';
import { removeCaseFromTrialSequence } from './sequences/removeCaseFromTrialSequence';
Expand Down Expand Up @@ -1076,7 +1075,6 @@ export const presenterSequences = {
prioritizeCaseSequence: prioritizeCaseSequence as unknown as Function,
refreshPdfSequence: refreshPdfSequence as unknown as Function,
refreshStatisticsSequence: refreshStatisticsSequence as unknown as Function,
refreshTokenSequence,
removeBatchSequence: removeBatchSequence as unknown as Function,
removeCaseDetailPendingItemSequence:
removeCaseDetailPendingItemSequence as unknown as Function,
Expand Down
21 changes: 7 additions & 14 deletions web-client/src/presenter/sequences/Init/initAppSequence.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { getMaintenanceModeAction } from '@web-client/presenter/actions/getMaintenanceModeAction';
import { getMaintenanceModeAction } from '@web-client/presenter/actions/Maintenance/getMaintenanceModeAction';
import { getUserAction } from '@web-client/presenter/actions/getUserAction';
import { isMaintenanceModeEngagedAction } from '@web-client/presenter/actions/Maintenance/isMaintenanceModeEngagedAction';
import { navigateToMaintenanceAction } from '@web-client/presenter/actions/navigateToMaintenanceAction';
import { parallel } from 'cerebral/factories';
import { refreshTokenAction } from '@web-client/presenter/actions/Login/refreshTokenAction';
Expand All @@ -8,21 +9,13 @@ import { setTokenAction } from '@web-client/presenter/actions/Login/setTokenActi
import { setUserAction } from '@web-client/presenter/actions/setUserAction';
import { setUserPermissionsAction } from '@web-client/presenter/actions/setUserPermissionsAction';
import { startRefreshIntervalSequence } from '@web-client/presenter/sequences/startRefreshIntervalSequence';
import { state } from '@web-client/presenter/app.cerebral';

export const initAppSequence = [
refreshTokenAction,
setTokenAction,
getMaintenanceModeAction,
setMaintenanceModeAction,
({ get, path }: ActionProps) => {
const maintenanceMode = get(state.maintenanceMode);

if (maintenanceMode) {
return path.maintenanceModeOn();
}
return path.maintenanceModeOff();
},
parallel([
[refreshTokenAction, setTokenAction],
[getMaintenanceModeAction, setMaintenanceModeAction],
]),
isMaintenanceModeEngagedAction,
{
maintenanceModeOff: [
parallel([
Expand Down
11 changes: 0 additions & 11 deletions web-client/src/presenter/sequences/Login/refreshTokenSequence.ts

This file was deleted.

10 changes: 1 addition & 9 deletions web-client/src/presenter/sequences/gotoTrialSessionsSequence.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import { getJudgeForCurrentUserAction } from '../actions/getJudgeForCurrentUserA
import { getNotificationsAction } from '../actions/getNotificationsAction';
import { getTrialSessionsAction } from '../actions/TrialSession/getTrialSessionsAction';
import { getUsersInSectionAction } from '../actions/getUsersInSectionAction';
import { isLoggedInAction } from '../actions/isLoggedInAction';
import { navigateToLoginSequence } from '@web-client/presenter/sequences/Login/navigateToLoginSequence';
import { parallel } from 'cerebral/factories';
import { setAllAndCurrentJudgesAction } from '../actions/setAllAndCurrentJudgesAction';
import { setJudgeUserAction } from '../actions/setJudgeUserAction';
Expand Down Expand Up @@ -34,10 +32,4 @@ const gotoTrialSessions = startWebSocketConnectionSequenceDecorator([
setupCurrentPageAction('TrialSessions'),
]);

export const gotoTrialSessionsSequence = [
isLoggedInAction,
{
isLoggedIn: [gotoTrialSessions],
unauthorized: [navigateToLoginSequence],
},
];
export const gotoTrialSessionsSequence = [gotoTrialSessions];
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getAllFeatureFlagsAction } from '../actions/getAllFeatureFlagsAction';
import { getMaintenanceModeForPublicAction } from '../actions/getMaintenanceModeForPublicAction';
import { getMaintenanceModeForPublicAction } from '../actions/Maintenance/getMaintenanceModeForPublicAction';
import { gotoMaintenanceSequence } from '../sequences/gotoMaintenanceSequence';

export const showMaintenancePageDecorator = (actionsList): any[] => {
Expand Down

0 comments on commit ba1d19e

Please sign in to comment.