Skip to content

Commit

Permalink
Merge pull request #111 from cabinetoffice/NTRNL-529-update-endpoints…
Browse files Browse the repository at this point in the history
…-for-the-github-additional-requests-page-to-match-the-new-structure

Ntrnl 529 update endpoints for the GitHub additional requests page to match the new structure
  • Loading branch information
DanielMurray97 authored Sep 5, 2024
2 parents 1797b27 + 54490f7 commit 60ca084
Show file tree
Hide file tree
Showing 22 changed files with 172 additions and 167 deletions.
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src/config/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export const TEAM_MEMBER = 'team-member';
export const REPO = 'repo';
export const COLLABORATOR = 'collaborator';
export const CHECK_YOUR_REQUESTS = 'check-your-requests';
export const ADDITIONAL_REQUESTS = 'additional-requests';
export const ADDITIONAL_REQUEST = 'additional-request';
export const ACCESSIBILITY_STATEMENT = 'accessibility-statement';
export const COOKIES = 'cookies';
export const CONTACT_US = 'contact-us';
Expand All @@ -68,7 +68,7 @@ export const TEAM_MEMBER_URL = '/team-member';
export const REPO_URL = '/repo';
export const COLLABORATOR_URL = '/collaborator';
export const CHECK_YOUR_REQUESTS_URL = '/check-your-requests';
export const ADDITIONAL_REQUESTS_URL = '/additional-requests';
export const ADDITIONAL_REQUEST_URL = '/additional-request';
export const ACCESSIBILITY_STATEMENT_URL = '/accessibility-statement';
export const COOKIES_URL = '/cookies';
export const CONTACT_US_URL = '/contact-us';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,24 @@ import {
} from '@co-digital/login';
import { v4 as uuidv4 } from 'uuid';

import * as config from '../config';
import { log } from '../utils/logger';
import * as config from '../../config';
import { log } from '../../utils/logger';

import { AdditionalRequests, AdditionalRequestsKey } from '../model/additional-requests.model';
import { getPreviousPageUrl } from '../utils/getPreviousPageUrl';
import { AdditionalRequest, AdditionalRequestKey } from '../../model/github/additional-request.model';
import { getPreviousPageUrl } from '../../utils/getPreviousPageUrl';

export const get = (_req: Request, res: Response) => {
return res.render(config.ADDITIONAL_REQUESTS);
return res.render(config.ADDITIONAL_REQUEST);
};

export const post = (req: Request, res: Response, next: NextFunction) => {
try {
const additionalRequestsID = uuidv4();
const additionalRequestID = uuidv4();
const context = req.body.context;

log.info(`Context: ${context}, Additional Requests ID: ${additionalRequestsID}`);
log.info(`Context: ${context}, Additional Request ID: ${additionalRequestID}`);

setApplicationDataKey(req.session, { ...req.body, [config.ID]: additionalRequestsID }, AdditionalRequestsKey);
setApplicationDataKey(req.session, { ...req.body, [config.ID]: additionalRequestID }, AdditionalRequestKey);

return res.redirect(config.GITHUB_HOME_URL);
} catch (err: any) {
Expand All @@ -35,12 +35,12 @@ export const post = (req: Request, res: Response, next: NextFunction) => {

export const getById = (req: Request, res: Response, next: NextFunction) => {
try {
const additionalRequestsID = req.params[config.ID];
const additionalRequestsData: AdditionalRequests = getApplicationDataByID(req.session, AdditionalRequestsKey, additionalRequestsID);
const additionalRequestID = req.params[config.ID];
const additionalRequestData: AdditionalRequest = getApplicationDataByID(req.session, AdditionalRequestKey, additionalRequestID);

log.info(`Context: ${additionalRequestsData.context}, Additional Requests ID: ${additionalRequestsID}`);
log.info(`Context: ${additionalRequestData.context}, Additional Request ID: ${additionalRequestID}`);

return res.render(config.ADDITIONAL_REQUESTS, { ...additionalRequestsData, [config.ID]: additionalRequestsID });
return res.render(config.ADDITIONAL_REQUEST, { ...additionalRequestData, [config.ID]: additionalRequestID });
} catch (err: any) {
log.errorRequest(req, err.message);
next(err);
Expand All @@ -50,11 +50,11 @@ export const getById = (req: Request, res: Response, next: NextFunction) => {
export const postById = (req: Request, res: Response, next: NextFunction) => {
try {
const context = req.body.context;
const additionalRequestsID = req.params[config.ID];
const additionalRequestID = req.params[config.ID];

log.info(`Context: ${context}, Additional Requests ID: ${additionalRequestsID}`);
log.info(`Context: ${context}, Additional Request ID: ${additionalRequestID}`);

setApplicationDataByID(req.session, { ...req.body, [config.ID]: additionalRequestsID }, AdditionalRequestsKey, additionalRequestsID);
setApplicationDataByID(req.session, { ...req.body, [config.ID]: additionalRequestID }, AdditionalRequestKey, additionalRequestID);

return res.redirect(getPreviousPageUrl(req));
} catch (err: any) {
Expand All @@ -65,9 +65,9 @@ export const postById = (req: Request, res: Response, next: NextFunction) => {

export const removeById = (req: Request, res: Response, next: NextFunction) => {
try {
log.info(`Additional Requests ID: ${req.params.id}`);
log.info(`Additional Request ID: ${req.params.id}`);

removeApplicationDataByID(req.session, AdditionalRequestsKey, req.params[config.ID]);
removeApplicationDataByID(req.session, AdditionalRequestKey, req.params[config.ID]);

return res.redirect(config.GITHUB_HOME_URL);
} catch (err: any) {
Expand Down
13 changes: 0 additions & 13 deletions src/model/additional-requests.model.ts

This file was deleted.

4 changes: 2 additions & 2 deletions src/model/application.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Member } from './github/member.model';
import { Team } from './github/team.model';
import { Repo } from './github/repo.model';
import { TeamMember } from './github/team-member.model';
import { AdditionalRequests } from './additional-requests.model';
import { AdditionalRequest } from './github/additional-request.model';
import { Collaborator } from './github/collaborator.model';

/*
Expand All @@ -15,6 +15,6 @@ export interface ApplicationData {
repos?: Repo[]
team_members?: TeamMember[]
collaborators?: Collaborator[]
additional_requests?: AdditionalRequests[]
additional_requests?: AdditionalRequest[]
}

13 changes: 13 additions & 0 deletions src/model/github/additional-request.model.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
export const AdditionalRequestKey = 'additional_requests';

export const AdditionalRequestMappingKeys: (keyof AdditionalRequest)[] = [
'id',
'context',
'description'
];

export interface AdditionalRequest {
id?: string;
context?: string;
description?: string;
}
18 changes: 0 additions & 18 deletions src/routes/additional-requests.ts

This file was deleted.

20 changes: 20 additions & 0 deletions src/routes/github/additional-request.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { Router } from 'express';

import { checkValidations } from '../../middleware/validation.middleware';
import { authentication } from '../../middleware/authentication.middleware';
import { additionalRequest as additionalRequestValidation } from '../../validation/github/additional-request.validation';

import { get, post, getById, removeById, postById } from '../../controller/github/additional-request.controller';
import * as config from '../../config';

const additionalRequestRouter = Router();

additionalRequestRouter.get(config.GITHUB_URL + config.CREATE + config.ADDITIONAL_REQUEST_URL, authentication, get);
additionalRequestRouter.post(config.GITHUB_URL + config.CREATE + config.ADDITIONAL_REQUEST_URL, authentication, ...additionalRequestValidation, checkValidations, post);

additionalRequestRouter.get(config.GITHUB_URL + config.REMOVE + config.ADDITIONAL_REQUEST_URL + config.PARAM_ID, authentication, removeById);

additionalRequestRouter.get(config.GITHUB_URL + config.UPDATE + config.ADDITIONAL_REQUEST_URL + config.PARAM_ID, authentication, getById);
additionalRequestRouter.post(config.GITHUB_URL + config.UPDATE + config.ADDITIONAL_REQUEST_URL + config.PARAM_ID, authentication, ...additionalRequestValidation, checkValidations, postById);

export default additionalRequestRouter;
4 changes: 2 additions & 2 deletions src/routes/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import teamRouter from './github/team';
import teamMemberRouter from './github/team-member';
import collaboratorRouter from './github/collaborator';
import checkYourRequestsRouter from './check-your-requests';
import additionalRequestsRouter from './additional-requests';
import additionalRequestRouter from './github/additional-request';
import accessibilityStatementRouter from './accessibility-statement';
import cookiesRouter from './cookies';
import contactUsRouter from './contact-us';
Expand All @@ -33,7 +33,7 @@ router.use(teamRouter);
router.use(teamMemberRouter);
router.use(collaboratorRouter);
router.use(checkYourRequestsRouter);
router.use(additionalRequestsRouter);
router.use(additionalRequestRouter);
router.use(accessibilityStatementRouter);
router.use(cookiesRouter);
router.use(contactUsRouter);
Expand Down
7 changes: 0 additions & 7 deletions src/validation/additional-requests.validation.ts

This file was deleted.

7 changes: 7 additions & 0 deletions src/validation/github/additional-request.validation.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { body } from 'express-validator';
import { descriptionRequiredValidation } from '../fields/description-required.validation';
import { ErrorMessages } from '../error.messages';

export const additionalRequest = [
body('context').notEmpty({ ignore_whitespace: true }).withMessage(ErrorMessages.CONTEXT), ...descriptionRequiredValidation
];
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{% endblock %}

{% block pageContent %}
<h1 class="govuk-heading-l">Additional requests</h1>
<h1 class="govuk-heading-l">Additional request</h1>

<p class="govuk-body">
Make an additional request that is not covered by the other options. For example, removal requests or permission changes.
Expand Down
2 changes: 1 addition & 1 deletion src/views/check-your-requests.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ <h2 class="govuk-heading-m">Collaborators details</h2>
{% endif %}
{% if (additional_requests and additional_requests.length > 0) %}
<h2 class="govuk-heading-m">Additional Requests details</h2>
{% include "include/check-your-requests/additional-requests.html" %}
{% include "include/check-your-requests/additional-request.html" %}
<br>
{% endif %}

Expand Down
2 changes: 1 addition & 1 deletion src/views/github-home.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ <h2 class="govuk-heading-m">Additional requests</h2>
</p>
<ul class="govuk-list govuk-list--bullet govuk-list--spaced">
<li>
<a class="govuk-link" href="/additional-requests">Additional requests</a>
<a class="govuk-link" href="/github/create/additional-request">Additional request</a>
</li>
</ul>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

{% for additional_request in additional_requests %}

{% set contextHref = "/additional-requests/" + additional_request.id + previousPageQueryParam + "#context" %}
{% set descriptionHref = "/additional-requests/" + additional_request.id + previousPageQueryParam + "#description" %}
{% set contextHref = "/github/update/additional-request/" + additional_request.id + previousPageQueryParam + "#context" %}
{% set descriptionHref = "/github/update/additional-request/" + additional_request.id + previousPageQueryParam + "#description" %}

<br>
{{ govukSummaryList({
Expand Down
2 changes: 1 addition & 1 deletion src/views/include/list/added.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,5 @@ <h2 class="govuk-heading-m">New collaborator requests</h2>
{% endif %}
{% if (additional_requests and additional_requests.length > 0) %}
<h2 class="govuk-heading-m">Additional requests</h2>
{% include "include/list/additional-requests.html" %}
{% include "include/list/additional-request.html" %}
{% endif %}
35 changes: 35 additions & 0 deletions src/views/include/list/additional-request.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{% set additionalRequestSummaryData = [] %}

{% for additional_request in additional_requests %}

{% set additionalRequestEditHref = "/github/update/additional-request/" + additional_request.id %}
{% set additionalRequestDeleteHref = "/github/remove/additional-request/" + additional_request.id %}

{% set additionalRequestSummaryData = (additionalRequestSummaryData.push({
key: {
text: "Additional request context"
},
value: {
text: additional_request.context
},
actions: {
items: [
{
href: additionalRequestEditHref,
text: "Edit",
visuallyHiddenText: "Additional request context"
},
{
href: additionalRequestDeleteHref,
text: "Delete",
visuallyHiddenText: "Additional request context"
}
]
}
}), additionalRequestSummaryData) %}

{% endfor %}

{{ govukSummaryList({
rows: additionalRequestSummaryData
}) }}
35 changes: 0 additions & 35 deletions src/views/include/list/additional-requests.html

This file was deleted.

Loading

0 comments on commit 60ca084

Please sign in to comment.