Skip to content

Commit

Permalink
Merge pull request #64 from flexion/master
Browse files Browse the repository at this point in the history
Sprint 13
  • Loading branch information
Waldo Jaquith authored May 8, 2019
2 parents a6a0e94 + de36e73 commit 024f3fd
Show file tree
Hide file tree
Showing 278 changed files with 40,761 additions and 1,408 deletions.
4 changes: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
command: docker run --rm efcms /bin/sh -c 'cd web-client && ./run-audit.sh'
- run:
name: UI - Test
command: docker run -v $(pwd)/web-client/coverage:/home/app/web-client/coverage --rm efcms /bin/sh -c 'cd web-client && npm run test:unit'
command: docker run -v $(pwd)/web-client/coverage:/home/app/web-client/coverage-unit --rm efcms /bin/sh -c 'cd web-client && npm run test:unit'
- run:
name: UI - SonarQube
command: docker run -v $(pwd)/web-client/coverage:/home/app/web-client/coverage -e "SONAR_KEY=${UI_SONAR_KEY}" -e "branch_name=${CIRCLE_BRANCH}" -e "SONAR_ORG=${SONAR_ORG}" -e "SONAR_TOKEN=${UI_SONAR_TOKEN}" --rm efcms /bin/sh -c 'cd web-client && ./verify-sonarqube-passed.sh'
Expand Down Expand Up @@ -84,7 +84,7 @@ jobs:
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" --rm efcms /bin/sh -c "cd web-client/terraform/main && ../bin/deploy-app.sh $ENV"
- run:
name: 'Deploy - Web Client - S3'
command: docker run -e "ENV=${ENV}" -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "COGNITO_SUFFIX=${COGNITO_SUFFIX}" --rm efcms /bin/sh -c "cd web-client && ./build-dist.sh $ENV && aws s3 sync dist s3://ui-${ENV}.${EFCMS_DOMAIN} --delete --cache-control no-cache"
command: docker run -e "ENV=${ENV}" -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "COGNITO_SUFFIX=${COGNITO_SUFFIX}" -e "GIT_COMMIT=${CIRCLE_SHA1}" --rm efcms /bin/sh -c "cd web-client && ./build-dist.sh $ENV && aws s3 sync dist s3://ui-${ENV}.${EFCMS_DOMAIN} --delete --cache-control no-cache"
- run:
name: 'Deploy - API - Terraform'
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "COGNITO_SUFFIX=${COGNITO_SUFFIX}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" --rm efcms /bin/sh -c "cd efcms-service/terraform/main && ../bin/deploy-app.sh ${ENV}"
Expand Down
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ You can log in using these usernames:
taxpayer
petitionsclerk
docketclerk
intakeclerk
respondent
seniorattorney
```
Expand All @@ -120,7 +119,6 @@ To run use Cognito, start the web client with `npm run dev:cognito` (instead of
petitioner1@example.com – petitioner5@example.com
petitionsclerk1@example.com – petitionsclerk5@example.com
docketclerk1@example.com – docketclerk5@example.com
intakeclerk1@example.com – intakeclerk5@example.com
respondent1@example.com – respondent5@example.com
seniorattorney1@example.com – seniorattorney5@example.com
```
Expand Down
114 changes: 57 additions & 57 deletions docs/zap-report.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion efcms-service/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ node_modules/
.dynamodb
storage/s3/*
dist/
.cache/
.cache/
1,004 changes: 638 additions & 366 deletions efcms-service/package-lock.json

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions efcms-service/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
"description": "US Tax Court Document Service API",
"version": "0.1.0",
"dependencies": {
"aws-xray-sdk": "^2.3.1",
"aws-xray-sdk": "^2.3.2",
"eslint-plugin-sort-requires": "^2.1.0",
"jsonwebtoken": "^8.5.1",
"uuid": "^3.3.2"
},
"license": "CC0-1.0",
"devDependencies": {
"artillery": "^1.6.0-27",
"artillery": "^1.6.0-28",
"artillery-plugin-fuzzer": "^1.0.1",
"aws-sdk": "^2.443.0",
"aws-sdk": "^2.445.0",
"aws-sdk-mock": "^4.4.0",
"dynamodb-admin": "^3.1.3",
"eslint": "^5.16.0",
Expand All @@ -37,7 +37,7 @@
"serverless-offline": "^4.9.4",
"serverless-plugin-aws-alerts": "^1.2.4",
"serverless-plugin-bind-deployment-id": "github:ustaxcourt/serverless-plugin-bind-deployment-id#update_lodash",
"serverless-plugin-git-variables": "^3.3.0",
"serverless-plugin-git-variables": "^3.3.1",
"serverless-plugin-split-stacks": "^1.7.2",
"serverless-plugin-tracing": "^2.0.0",
"serverless-prune-plugin": "^1.3.2",
Expand Down
59 changes: 59 additions & 0 deletions efcms-service/serverless.yml
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,14 @@ functions:
method: get
cors: true

setMessageAsRead:
handler: src/handlers.setMessageAsReadLambda
events:
- http:
path: v1/messages/{messageId}/read
method: post
cors: true

getDownloadPolicyUrl:
handler: src/handlers.downloadPolicyUrlLambda
events:
Expand All @@ -235,6 +243,21 @@ functions:
authorizerId:
Ref: ApiGatewayAuthorizer

addCoversheet:
handler: src/handlers.addCoversheetLambda
memorySize: 3008
timeout: 900
events:
- http:
path: v1/cases/{caseId}/documents/{documentId}/coversheet
method: post
cors: true
async: true
authorizer:
type: COGNITO_USER_POOLS
authorizerId:
Ref: ApiGatewayAuthorizer

updateCase:
handler: src/handlers.updateCaseLambda
events:
Expand Down Expand Up @@ -307,6 +330,30 @@ functions:
authorizerId:
Ref: ApiGatewayAuthorizer

verifyCaseForUser:
handler: src/handlers.verifyCaseForUserLambda
events:
- http:
path: v1/users/{userId}/case/{caseId}
method: get
cors: true
authorizer:
type: COGNITO_USER_POOLS
authorizerId:
Ref: ApiGatewayAuthorizer

practitionerCaseAssociation:
handler: src/handlers.practitionerCaseAssociationLambda
events:
- http:
path: v1/users/{userId}/case/{caseId}
method: put
cors: true
authorizer:
type: COGNITO_USER_POOLS
authorizerId:
Ref: ApiGatewayAuthorizer

getCasesForRespondent:
handler: src/handlers.getCasesForRespondentLambda
events:
Expand Down Expand Up @@ -503,6 +550,18 @@ functions:
authorizerId:
Ref: ApiGatewayAuthorizer

getNotifications:
handler: src/handlers.getNotificationsLambda
events:
- http:
path: v1/notifications
method: get
cors: true
authorizer:
type: COGNITO_USER_POOLS
authorizerId:
Ref: ApiGatewayAuthorizer

createUser:
handler: src/handlers.createUserLambda
events:
Expand Down
1 change: 0 additions & 1 deletion efcms-service/setup-cognito-users.sh
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,5 @@ createManyAccounts "petitioner"
createManyAccounts "petitionsclerk"
createManyAccounts "docketclerk"
createManyAccounts "seniorattorney"
createManyAccounts "intakeclerk"
createManyAccounts "respondent"
createManyAccounts "practitioner"
50 changes: 50 additions & 0 deletions efcms-service/src/applicationContext.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ const uuidv4 = require('uuid/v4');
const { S3, DynamoDB } = AWS;
const docketNumberGenerator = require('../../shared/src/persistence/dynamo/cases/docketNumberGenerator');
const irsGateway = require('../../shared/src/external/irsGateway');

const {
addCoverToPDFDocument,
} = require('../../shared/src/business/useCases/addCoverToPDFDocumentInteractor');
const {
addWorkItemToSectionInbox,
} = require('../../shared/src/persistence/dynamo/workitems/addWorkItemToSectionInbox');
Expand All @@ -30,6 +34,9 @@ const {
const {
createDocument,
} = require('../../shared/src/business/useCases/createDocumentInteractor');
const {
createMappingRecord,
} = require('../../shared/src/persistence/dynamo/helpers/createMappingRecord');
const {
createUser,
} = require('../../shared/src/persistence/dynamo/users/createUser');
Expand Down Expand Up @@ -93,6 +100,12 @@ const {
const {
getInternalUsers: getInternalUsersUC,
} = require('../../shared/src/business/useCases/users/getInternalUsersInteractor');
const {
getNotifications,
} = require('../../shared/src/business/useCases/getNotificationsInteractor');
const {
getReadMessagesForUser,
} = require('../../shared/src/persistence/dynamo/messages/getReadMessagesForUser');
const {
getSentWorkItemsForSection,
} = require('../../shared/src/persistence/dynamo/workitems/getSentWorkItemsForSection');
Expand Down Expand Up @@ -160,6 +173,9 @@ const {
const {
runBatchProcess,
} = require('../../shared/src/business/useCases/runBatchProcessInteractor');
const {
saveDocument,
} = require('../../shared/src/persistence/s3/saveDocument');
const {
saveWorkItem,
} = require('../../shared/src/persistence/dynamo/workitems/saveWorkItem');
Expand All @@ -172,18 +188,34 @@ const {
const {
sendPetitionToIRSHoldingQueue,
} = require('../../shared/src/business/useCases/sendPetitionToIRSHoldingQueueInteractor');
const {
setMessageAsRead,
} = require('../../shared/src/persistence/dynamo/messages/setMessageAsRead');
const {
setMessageAsRead: setMessageAsReadUC,
} = require('../../shared/src/business/useCases/messages/setMessageAsReadInteractor');
const {
submitCaseAssociationRequest,
} = require('../../shared/src/business/useCases/caseAssociationRequest/submitCaseAssociationRequestInteractor');
const {
updateCase,
} = require('../../shared/src/persistence/dynamo/cases/updateCase');
const {
updateCase: updateCaseUC,
} = require('../../shared/src/business/useCases/updateCaseInteractor');
const {
updateDocumentProcessingStatus,
} = require('../../shared/src/persistence/dynamo/documents/updateDocumentProcessingStatus');
const {
updateWorkItem,
} = require('../../shared/src/persistence/dynamo/workitems/updateWorkItem');
const {
verifyCaseForUser,
} = require('../../shared/src/persistence/dynamo/cases/verifyCaseForUser');
const {
zipDocuments,
} = require('../../shared/src/persistence/s3/zipDocuments');

const { User } = require('../../shared/src/business/entities/User');

const environment = {
Expand Down Expand Up @@ -233,6 +265,7 @@ module.exports = (appContextUser = {}) => {
addWorkItemToSectionInbox,
createCase,
createDocument,
createMappingRecord,
createUser,
createWorkItem,
deleteDocument,
Expand All @@ -245,6 +278,7 @@ module.exports = (appContextUser = {}) => {
getCasesForRespondent,
getDownloadPolicyUrl,
getInternalUsers,
getReadMessagesForUser,
getSentWorkItemsForSection,
getSentWorkItemsForUser,
getUploadPolicy,
Expand All @@ -255,10 +289,13 @@ module.exports = (appContextUser = {}) => {
getWorkItemsForUser,
incrementCounter,
putWorkItemInOutbox,
saveDocument,
saveWorkItem,
saveWorkItemForNonPaper,
saveWorkItemForPaper,
setMessageAsRead,
updateCase,
updateDocumentProcessingStatus,
updateWorkItem,
zipDocuments,
};
Expand All @@ -277,6 +314,7 @@ module.exports = (appContextUser = {}) => {
},
getUseCases: () => {
return {
addCoverToPDFDocument,
assignWorkItems: assignWorkItemsUC,
completeWorkItem,
createCase: createCaseUC,
Expand All @@ -290,6 +328,7 @@ module.exports = (appContextUser = {}) => {
getCasesByUser: getCasesByUserUC,
getCasesForRespondent: getCasesForRespondentUC,
getInternalUsers: getInternalUsersUC,
getNotifications,
getSentWorkItemsForSection: getSentWorkItemsForSectionUC,
getSentWorkItemsForUser: getSentWorkItemsForUserUC,
getUser,
Expand All @@ -300,7 +339,10 @@ module.exports = (appContextUser = {}) => {
recallPetitionFromIRSHoldingQueue,
runBatchProcess,
sendPetitionToIRSHoldingQueue,
setMessageAsRead: setMessageAsReadUC,
submitCaseAssociationRequest,
updateCase: updateCaseUC,
verifyCaseForUser,
};
},
irsGateway,
Expand All @@ -315,6 +357,14 @@ module.exports = (appContextUser = {}) => {
// eslint-disable-next-line no-console
console.info(key, JSON.stringify(value));
},
time: key => {
// eslint-disable-next-line no-console
console.time(key);
},
timeEnd: key => {
// eslint-disable-next-line no-console
console.timeEnd(key);
},
},
};
};
10 changes: 6 additions & 4 deletions efcms-service/src/cases/createCaseFromPaperLambda.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@ exports.handler = event =>
const user = getUserFromAuthHeader(event);
const applicationContext = createApplicationContext(user);
try {
const results = applicationContext.getUseCases().createCaseFromPaper({
...JSON.parse(event.body),
applicationContext,
});
const results = await applicationContext
.getUseCases()
.createCaseFromPaper({
...JSON.parse(event.body),
applicationContext,
});
applicationContext.logger.info('User', user);
applicationContext.logger.info('Results', results);
return results;
Expand Down
2 changes: 1 addition & 1 deletion efcms-service/src/cases/createCaseLambda.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ exports.handler = event =>
const user = getUserFromAuthHeader(event);
const applicationContext = createApplicationContext(user);
try {
const results = applicationContext.getUseCases().createCase({
const results = await applicationContext.getUseCases().createCase({
...JSON.parse(event.body),
applicationContext,
});
Expand Down
2 changes: 1 addition & 1 deletion efcms-service/src/cases/getCasesByStatusLambda.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ exports.handler = event =>
const user = getUserFromAuthHeader(event);
const applicationContext = createApplicationContext(user);
try {
const results = applicationContext.getUseCases().getCasesByStatus({
const results = await applicationContext.getUseCases().getCasesByStatus({
applicationContext,
status,
});
Expand Down
2 changes: 1 addition & 1 deletion efcms-service/src/cases/getCasesByUserLambda.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ exports.handler = event =>
const user = getUserFromAuthHeader(event);
const applicationContext = createApplicationContext(user);
try {
const results = applicationContext.getUseCases().getCasesByUser({
const results = await applicationContext.getUseCases().getCasesByUser({
applicationContext,
userId,
});
Expand Down
10 changes: 6 additions & 4 deletions efcms-service/src/cases/getCasesForRespondentLambda.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@ exports.handler = event =>
const user = getUserFromAuthHeader(event);
const applicationContext = createApplicationContext(user);
try {
const results = applicationContext.getUseCases().getCasesForRespondent({
applicationContext,
respondentId,
});
const results = await applicationContext
.getUseCases()
.getCasesForRespondent({
applicationContext,
respondentId,
});
applicationContext.logger.info('User', user);
applicationContext.logger.info('Results', results);
return results;
Expand Down
Loading

0 comments on commit 024f3fd

Please sign in to comment.