From a24d68b8c4790920556d5ae7502e8ba1c5ac605a Mon Sep 17 00:00:00 2001 From: robbond Date: Mon, 7 Jul 2025 12:02:02 +0000 Subject: [PATCH 1/6] Add Dockerfile --- Dockerfile | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..191b532f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# Use official Node.js 20 LTS image +FROM node:20-alpine + +# Set working directory +WORKDIR /app + +# Install dependencies first (better caching) +COPY package*.json ./ +RUN npm ci --production + +# Copy source files (including .next build output if pre-built) +COPY . . + +# If you want to build inside container, uncomment: +# RUN npm run build + +# Use non-root user (optional, but recommended) +RUN addgroup -S appgroup && adduser -S appuser -G appgroup +USER appuser + +# Expose port your app listens on +EXPOSE 3000 + +# Start your Next.js app (adjust if using custom server) +CMD ["npm", "start"] From 777d37f8b494aa5e7cd5573d25ee62d6b2f54511 Mon Sep 17 00:00:00 2001 From: robbond Date: Mon, 7 Jul 2025 15:02:39 +0000 Subject: [PATCH 2/6] Add Jenkinsfile --- Jenkinsfile | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..0bf90ee6 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,46 @@ +pipeline { + agent any + + environment { + IMAGE = "pedw-app" + } + + stages { + stage('Install & Build') { + steps { + sh 'npm ci' + sh 'npm run build' + } + } + + stage('Build Docker Image') { + steps { + sh "docker build -t $REGISTRY/$IMAGE:latest ." + } + } + + stage('Push Docker Image') { + steps { + withCredentials([usernamePassword(credentialsId: 'dockerhub-credentials', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { + sh "echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin" + sh "docker push $REGISTRY/$IMAGE:latest" + } + } + } + + stage('Deploy to Plesk') { + steps { + sshagent(['plesk-ssh-key']) { + sh """ + ssh root@your-plesk-domain.com ' + docker pull $REGISTRY/$IMAGE:latest && + docker stop nextjs-app || true && + docker rm nextjs-app || true && + docker run -d --restart=always --name nextjs-app -p 3000:3000 $REGISTRY/$IMAGE:latest + ' + """ + } + } + } + } +} From 7c1262e4dcb689d66c6df1c2873d48e5f7b4368d Mon Sep 17 00:00:00 2001 From: robbond Date: Mon, 7 Jul 2025 15:06:28 +0000 Subject: [PATCH 3/6] Update Jenkinsfile --- Jenkinsfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0bf90ee6..71cc12b6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,5 +1,9 @@ pipeline { - agent any + agent { + docker { + image 'node:20' // ✅ Node.js 20 with npm included + } + } environment { IMAGE = "pedw-app" From 8713317404cc845e4f9ed8a8227f03dbd81b1030 Mon Sep 17 00:00:00 2001 From: rdbsolutions Date: Tue, 8 Jul 2025 08:58:41 +0100 Subject: [PATCH 4/6] Merged PR 1717: merge dev to sips Related work items: #12956 --- .gitignore | 10 +- actions/azurestorage.js | 7 +- components/myportal/viewall.js | 8 +- components/search/searchresults.js | 10 +- components/utils/index.js | 45 +- next-swagger-doc.json | 588 ------------------ next.config.js | 16 +- package-lock.json | 2 +- pages/_document.js | 8 +- pages/api-doc.js | 102 --- pages/api/endpoint/getappealtypes_api.js | 10 +- pages/api/endpoint/getbasicsearch_api.js | 6 +- .../api/endpoint/getbasicsearchdetails_api.js | 16 +- pages/api/endpoint/getbasicsearchpaged_api.js | 6 +- public/swagger.json | 582 ----------------- server.js | 3 +- 16 files changed, 93 insertions(+), 1326 deletions(-) delete mode 100644 next-swagger-doc.json delete mode 100644 pages/api-doc.js delete mode 100644 public/swagger.json diff --git a/.gitignore b/.gitignore index 2f0cba51..7485fbf5 100644 --- a/.gitignore +++ b/.gitignore @@ -37,5 +37,11 @@ pages/polling.js pages/api/endpoint/getaccounts_api.js -# certs -certificates/* +# remove swagger api docs + +next-swagger-doc.json +pages/api-doc.js +public/swagger.json +certificates/cert-key.pem +certificates/cert.pem +gitclean.sh diff --git a/actions/azurestorage.js b/actions/azurestorage.js index abdbc590..6b1791c1 100644 --- a/actions/azurestorage.js +++ b/actions/azurestorage.js @@ -364,13 +364,14 @@ export const createAppealPDFBlob = async ( const uploadBlobResponse = await blockBlobClient.uploadStream(content); console.log(uploadBlobResponse); + let whichLocation = "846040000"; // Default value const tags = { containerid: containerName, caseID: caseID, blobType: "Appeal PDF", - documentLocationId: "846040000", - ishareLocation: "846040000", + ishareLocation: whichLocation, + documentLocationId: whichLocation, }; //console.log("the tags:", tags); @@ -433,6 +434,7 @@ export const createRepPDFBlob = async ( blobType: "Representation PDF", documentLocationId: whichLocation, ishareLocation: whichLocation, + documentLocationId: whichLocation, }; //console.log("the tags:", tags); @@ -624,6 +626,7 @@ export const uploadFile = async (formContent, containerName, foldername) => { blobType: "RepresentationFile", documentLocationId: whichLocation, ishareLocation: whichLocation, + documentLocationId: whichLocation, }; const withTags = blockBlobClient.setTags(tags); const withMeta = blockBlobClient.setMetadata(tags); diff --git a/components/myportal/viewall.js b/components/myportal/viewall.js index a625b871..b4dcb1c9 100644 --- a/components/myportal/viewall.js +++ b/components/myportal/viewall.js @@ -248,8 +248,12 @@ const ViewAllResults = (props) => { viewAllKey : router.locale == "cy" ? myportal == true - ? "/fymhorth/achos" - : "/achos" + ? "/fymhorth/achos" + + resultsArr[key].ticketnumber + + "?key=" + + currentView.viewKey + : "/achos" + + resultsArr[key].ticketnumber : myportal == true ? "/myportal/case/" + resultsArr[key].ticketnumber + diff --git a/components/search/searchresults.js b/components/search/searchresults.js index b8803fec..95f9b683 100644 --- a/components/search/searchresults.js +++ b/components/search/searchresults.js @@ -350,15 +350,15 @@ const SearchResults = (props) => {
{ diff --git a/components/utils/index.js b/components/utils/index.js index 041b12c4..ba9b616c 100644 --- a/components/utils/index.js +++ b/components/utils/index.js @@ -115,17 +115,19 @@ export const getSearchDetails = async (searchResultsObj) => { } ); } else { - detailsArr.push( - getBasicSearchDetails( - formMeta.LogicalCollectionName, - searchDetail.title, - formMeta.PrimaryIdAttribute, - searchDetail.incidentid - ) || { - "@odata.count": 1, - "value": [{ "title": searchDetail.title }], - } - ); + formMeta?.LogicalCollectionName && + formMeta?.LogicalCollectionName != "pinswg_sipses" && + detailsArr.push( + getBasicSearchDetails( + formMeta.LogicalCollectionName, + searchDetail.title, + formMeta.PrimaryIdAttribute, + searchDetail.incidentid + ) || { + "@odata.count": 1, + "value": [{ "title": searchDetail.title }], + } + ); } }); // Promise.all(detailsArr).then((data) => { @@ -150,7 +152,7 @@ export const getPartSavedDetails = (searchResultsObj) => { let formMeta = getFormCollectionByID( searchDetail.pinswg_appealcasetype ); - console.log(formMeta); + // console.log(formMeta); detailsArr.push( getBasicPartSavedDetails( formMeta.LogicalCollectionName, @@ -178,15 +180,16 @@ export const getSearchDetailsPaged = (searchResultsObj) => { let formMeta = getFormCollectionByID( searchDetail.pinswg_appealcasetype ); - - detailsArr.push( - getBasicSearchDetailsPaged( - formMeta.LogicalCollectionName, - searchDetail.title, - formMeta.PrimaryIdAttribute, - searchDetail.incidentid - ) - ); + formMeta?.LogicalCollectionName && + formMeta?.LogicalCollectionName != "pinswg_sipses" && + detailsArr.push( + getBasicSearchDetailsPaged( + formMeta.LogicalCollectionName, + searchDetail.title, + formMeta.PrimaryIdAttribute, + searchDetail.incidentid + ) + ); } }); return Promise.all(detailsArr); diff --git a/next-swagger-doc.json b/next-swagger-doc.json deleted file mode 100644 index b8a717fa..00000000 --- a/next-swagger-doc.json +++ /dev/null @@ -1,588 +0,0 @@ -{ - "apiFolder": "pages/api", - "schemaFolders": [ - "models" - ], - "definition": { - "openapi": "3.0.3", - "info": { - "title": "PEDW API", - "version": "1.0" - }, - "components": { - "schemas": { - "emailBody": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "example": "PEDW-COMPLETE" - }, - "templateId": { - "type": "string", - "example": "618e0463-b092-4733-a024-bf8a3bbde808" - }, - "emailAddress": { - "type": "string", - "example": "rob@rdbtech.co.uk" - }, - "personalisation": { - "type": "object", - "example": { - "caseReference": "CAS-TEST-TEST", - "emailAddress": "rob@rdbtech.co.uk", - "linkExpiry": "10 * 60" - } - } - } - } - }, - "securitySchemes": { - "pedw_auth": { - "type": "oauth2", - "flows": { - "clientCredentials": { - "tokenUrl": "https://login.microsoftonline.com/9ac1a5ab-cd58-409e-a1b6-6b10422a68f5/oauth2/v2.0/token", - "scopes": "https://dev-pedw-ns.servicebus.windows.net/.default" - } - } - }, - "api_key": { - "type": "apiKey", - "name": "api_key", - "in": "header" - } - } - }, - "paths": { - "/api/auth/[...nextauth]": { - "get": { - "tags": [ - "Login" - ], - "description": "NextAuth", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/documents/download/{id}": { - "get": { - "tags": [ - "Documents" - ], - "description": "Get document", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "iShare ID", - "type": "string", - "required": true, - "default": "A41567436" - }, - { - "name": "hash", - "in": "query", - "description": "Hash string", - "default": "e0a1c9cd2817826a25bca67e60b807eae747cbed769e3ec42cf997541c32be71" - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/email/notify": { - "post": { - "tags": [ - "Email" - ], - "summary": "Email to user", - "consumes": [ - "application/json" - ], - "description": "Send email via gov notify", - "produces": [ - "application/json", - "application/xml" - ], - "requestBody": { - "name": "Email", - "description": "Email body", - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/emailBody" - } - } - } - }, - "responses": { - "405": { - "description": "Failed" - } - } - } - }, - "/api/endpoint/createaccount_api": { - "post": { - "tags": [ - "Account" - ], - "description": "Create password", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/createcase_api": { - "post": { - "tags": [ - "Case" - ], - "description": "Create case", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/createmywatchedcases_api": { - "post": { - "tags": [ - "Portal", - "Case" - ], - "description": "Create my watched cases", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/deleteawaitingsubmissions_api": { - "delete": { - "tags": [ - "Case" - ], - "description": "Delete awaiting case submission", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/deleteamyrepresentations_api": { - "delete": { - "tags": [ - "Portal", - "Representations" - ], - "description": "Delete my representations", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/deleteamywatchedcases_api": { - "delete": { - "tags": [ - "Portal", - "Case" - ], - "description": "Delete my watched cases", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getadvancedsearch_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Advanced search", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getadvancedsearchpaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Advanced search paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getappealid_api": { - "get": { - "tags": [ - "Misc" - ], - "description": "Get Appeal ID", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getappealtypes_api": { - "get": { - "tags": [ - "Misc" - ], - "description": "Get Appeal Types", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getappealtypesfornewappeal_api": { - "get": { - "tags": [ - "Misc" - ], - "description": "Get Appeal Types for appeal", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getawaitingsubmission_api": { - "get": { - "tags": [ - "Case" - ], - "description": "get awaiting case submission", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getawaitingsubmissionproxy_api": { - "get": { - "tags": [ - "Case" - ], - "description": "get awaiting case submission proxy", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicdnssearch_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic DNS search", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicdnssearchdetails_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic DNS search details", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicdnssearchdetailspaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic DNS search details paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicdnssearchpaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic DNS search paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicdnsurlsearch_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic DNS search URL", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicsearch_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicsearchdetails_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search details", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicsearchdetailspaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search details paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicsearchpaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getcase_api": { - "get": { - "tags": [ - "Case" - ], - "summary": "Not used", - "description": "Get case", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getlogin_api": { - "get": { - "tags": [ - "Login" - ], - "description": "Returns the hello world", - "responses": { - "200": { - "description": "hello world" - } - } - } - }, - "/api/endpoint/getlpa_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Get list of LPA's", - "responses": { - "200": { - "description": "Success" - } - }, - "security": [ - { - "relay_auth": [] - } - ] - } - }, - "/api/endpoint/getsearchdocumentdetails_api": { - "get": { - "tags": [ - "Search", - "Documents" - ], - "description": "Basic search documents details", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getsearchdocumentdetailspaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search documents details paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getsearchdocumenthistory_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search documents history", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getsearchdocumenthistorypaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search documents history paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getsearchdocumentTypes_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search documents history paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/patchcase_api": { - "patch": { - "tags": [ - "Case" - ], - "description": "Patch case", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/updateaccount_api": { - "patch": { - "tags": [ - "Account" - ], - "description": "Update account", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/updatecase_api": { - "patch": { - "tags": [ - "Case" - ], - "description": "Update case", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/updatepassword_api": { - "patch": { - "tags": [ - "Account" - ], - "description": "Update password", - "responses": { - "200": { - "description": "Success" - } - } - } - } - }, - "tags": [] - } -} \ No newline at end of file diff --git a/next.config.js b/next.config.js index 1e90f0c6..c63305d6 100644 --- a/next.config.js +++ b/next.config.js @@ -154,9 +154,13 @@ module.exports = { destination: "/case", }, { - source: "/achos/id/:slug", - destination: "/case/id/:slug", + source: "/achos/:slug", + destination: "/case/:slug", }, + // { + // source: "/achos/id/:slug", + // destination: "/case/id/:slug", + // }, { source: "/fymhorth/achos", destination: "/myportal/case", @@ -165,10 +169,10 @@ module.exports = { source: "/fymhorth/ceisiadaudns", destination: "/myportal/dnsapplications", }, - { - source: "/fymhorth/achos/id/:slug", - destination: "/myportal/case/id/:slug", - }, + // { + // source: "/fymhorth/achos/id/:slug", + // destination: "/myportal/case/id/:slug", + // }, { source: "/fymhorth/achos/:slug", destination: "/myportal/case/:slug", diff --git a/package-lock.json b/package-lock.json index f12a7df9..73a6296b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11546,4 +11546,4 @@ } } } -} +} \ No newline at end of file diff --git a/pages/_document.js b/pages/_document.js index 03d9d7e6..cf1d68b7 100644 --- a/pages/_document.js +++ b/pages/_document.js @@ -23,10 +23,10 @@ class MyDocument extends Document { const cookieObj = ctx.req.cookies.CookiePolicy || {}; - console.log("useGATracking: ", useGATracking); - // setCookie(ctx, "pedw_locale", ctx.locale, { - // path: "/", - // }); + //console.log("useGATracking: ", useGATracking); + setCookie(ctx, "pedw_locale", ctx.locale, { + path: "/", + }); const headers = ctx.req?.headers; const generatedNonce = headers?.["x-nonce"]; diff --git a/pages/api-doc.js b/pages/api-doc.js deleted file mode 100644 index cfd333bc..00000000 --- a/pages/api-doc.js +++ /dev/null @@ -1,102 +0,0 @@ -import { createSwaggerSpec } from "next-swagger-doc"; -import dynamic from "next/dynamic"; -import "swagger-ui-react/swagger-ui.css"; - -const SwaggerUI = dynamic(import("swagger-ui-react"), { ssr: false }); - -function ApiDoc({ spec }) { - return ; -} - -let BASE_URL; -const port = parseInt(process.env.PORT, 10) || 3000; - -if (process.browser) { - BASE_URL = window.apiRoot; -} else { - BASE_URL = process.env.API_ROOT || `http://localhost:${port}`; -} -const WORDKEY = process.env.HASHKEY; - -const cache = {}; -const API_PATH = "/api/data/v8.2/"; - -const accessTokenEndpoint = process.env.ACCESS_TOKEN_ENDPOINT; -const tenantId = process.env.TENANT; - -export const getStaticProps = async () => { - const spec = createSwaggerSpec({ - layout: "StandaloneLayout", - apiFolder: "pages/api", - schemaFolders: ["models"], - definition: { - openapi: "3.0.3", - info: { - title: "PEDW API", - version: "1.0", - contact: { - email: "rob@rdbsolutions.co.uk", - }, - }, - docExpansion: "none", - components: { - schemas: { - emailBody: { - type: "object", - properties: { - reference: { - type: "string", - example: "PEDW-COMPLETE", - }, - templateId: { - type: "string", - example: "618e0463-b092-4733-a024-bf8a3bbde808", - }, - emailAddress: { - type: "string", - example: "rob@rdbtech.co.uk", - }, - personalisation: { - type: "object", - example: { - caseReference: "CAS-TEST-TEST", - emailAddress: "rob@rdbtech.co.uk", - linkExpiry: "10 * 60", - }, - }, - }, - }, - }, - // securitySchemes: { - // pedw_auth: { - // type: "oauth2", - // flows: { - // clientCredentials: { - // tokenUrl: `${accessTokenEndpoint}${tenantId}/oauth2/v2.0/token`, - // scopes: - // "https://" + - // process.env.RELAYURI + - // "/.default", - // }, - // }, - // }, - // api_key: { - // type: "apiKey", - // name: "api_key", - // in: "header", - // }, - // }, - }, - }, - }); - - //console.log(JSON.stringify(spec)); - - return { - props: { - spec, - }, - }; -}; - -export default ApiDoc; diff --git a/pages/api/endpoint/getappealtypes_api.js b/pages/api/endpoint/getappealtypes_api.js index 23dfd07f..a206cb59 100644 --- a/pages/api/endpoint/getappealtypes_api.js +++ b/pages/api/endpoint/getappealtypes_api.js @@ -35,7 +35,15 @@ export default async function ApiProxy(req, res) { var token = await getToken(); var queryUrl = - "stringmaps?$filter=objecttypecode eq 'incident' and attributename eq 'pinswg_appealcasetype'&$count=true&$select=value,stringmapid,organizationid,attributevalue&$orderby=value asc"; + "stringmaps?$filter=objecttypecode eq 'incident' and attributename eq 'pinswg_appealcasetype' " + + (process.env.SHOWSIPS !== "true" + ? "and pinswg_appealcasetype ne 846040002" + : "") + + "&$count=true&$select=value,stringmapid,organizationid,attributevalue&$orderby=value asc"; + + // for sips + // "stringmaps?$filter=objecttypecode eq 'incident' and attributename eq 'pinswg_appealcasetype'&$count=true&$select=value,stringmapid,organizationid,attributevalue&$orderby=value asc"; + // "stringmaps?$filter=objecttypecode eq 'incident' and attributename eq 'pinswg_appealcasetype' and value ne 'Misc Casework'&$count=true&$select=value,stringmapid,organizationid,attributevalue&$orderby=value asc"; //"stringmaps?$filter=objecttypecode eq 'incident' and attributename eq 'pinswg_appealcasetype' and value ne 'Developments of National Significance' and value ne 'LDP' and value ne 'Misc Casework'&$count=true&$select=value,stringmapid,organizationid,attributevalue&$orderby=value asc"; diff --git a/pages/api/endpoint/getbasicsearch_api.js b/pages/api/endpoint/getbasicsearch_api.js index a8b7c73c..8b8a3e2b 100644 --- a/pages/api/endpoint/getbasicsearch_api.js +++ b/pages/api/endpoint/getbasicsearch_api.js @@ -49,7 +49,11 @@ export default async function ApiProxy(req, res) { searchString + "') or contains(ticketnumber, '" + searchString + - "')) and pinswg_appealcasetype ne null and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true"; + "')) and pinswg_appealcasetype ne null " + + (process.env.SHOWSIPS !== "true" + ? "and pinswg_appealcasetype ne 846040002" + : "") + + "and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true"; console.log( "\n==========================================\n", diff --git a/pages/api/endpoint/getbasicsearchdetails_api.js b/pages/api/endpoint/getbasicsearchdetails_api.js index fac42e63..049425be 100644 --- a/pages/api/endpoint/getbasicsearchdetails_api.js +++ b/pages/api/endpoint/getbasicsearchdetails_api.js @@ -66,13 +66,15 @@ export default async function ApiProxy(req, res) { "&$count=true"; //" and statuscode eq 1&$count=true"; - queryUrl = - queryUrl + - getSelectQuery(appealTypeName) + - ",_" + - (primaryIdAttribute == "pinswg_sipscase" - ? "pinswg_sipscase_value" - : primaryIdAttribute + "s_value"); + // queryUrl = + // queryUrl + + // getSelectQuery(appealTypeName) + + // ",_" + + // (primaryIdAttribute == "pinswg_sipscase" + // ? "pinswg_sipscase_value" + // : primaryIdAttribute + "s_value"); + + queryUrl = queryUrl + getSelectQuery(appealTypeName); // console.log( // "\n==========================================\n", diff --git a/pages/api/endpoint/getbasicsearchpaged_api.js b/pages/api/endpoint/getbasicsearchpaged_api.js index 7eadff3e..c8e265fa 100644 --- a/pages/api/endpoint/getbasicsearchpaged_api.js +++ b/pages/api/endpoint/getbasicsearchpaged_api.js @@ -83,7 +83,11 @@ export default async function ApiProxy(req, res) { searchString + "') or contains(ticketnumber, '" + searchString + - "')) and pinswg_appealcasetype ne null and pinswg_publishtoweb eq true&$orderby=" + + "')) and pinswg_appealcasetype ne null " + + (process.env.SHOWSIPS !== "true" + ? "and pinswg_appealcasetype ne 846040002" + : "") + + "and pinswg_publishtoweb eq true&$orderby=" + orderby + " " + fieldSort + diff --git a/public/swagger.json b/public/swagger.json deleted file mode 100644 index a62c666c..00000000 --- a/public/swagger.json +++ /dev/null @@ -1,582 +0,0 @@ -{ - "openapi": "3.0.3", - "info": { - "title": "PEDW API", - "version": "1.0" - }, - "components": { - "schemas": { - "emailBody": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "example": "PEDW-COMPLETE" - }, - "templateId": { - "type": "string", - "example": "618e0463-b092-4733-a024-bf8a3bbde808" - }, - "emailAddress": { - "type": "string", - "example": "rob@rdbtech.co.uk" - }, - "personalisation": { - "type": "object", - "example": { - "caseReference": "CAS-TEST-TEST", - "emailAddress": "rob@rdbtech.co.uk", - "linkExpiry": "10 * 60" - } - } - } - } - }, - "securitySchemes": { - "pedw_auth": { - "type": "oauth2", - "flows": { - "clientCredentials": { - "tokenUrl": "https://login.microsoftonline.com/9ac1a5ab-cd58-409e-a1b6-6b10422a68f5/oauth2/v2.0/token", - "scopes": "https://dev-pedw-ns.servicebus.windows.net/.default" - } - } - }, - "api_key": { - "type": "apiKey", - "name": "api_key", - "in": "header" - } - } - }, - "paths": { - "/api/auth/[...nextauth]": { - "get": { - "tags": [ - "Login" - ], - "description": "NextAuth", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/documents/download/{id}": { - "get": { - "tags": [ - "Documents" - ], - "description": "Get document", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "iShare ID", - "type": "string", - "required": true, - "default": "A41567436" - }, - { - "name": "hash", - "in": "query", - "description": "Hash string", - "default": "e0a1c9cd2817826a25bca67e60b807eae747cbed769e3ec42cf997541c32be71" - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/email/notify": { - "post": { - "tags": [ - "Email" - ], - "summary": "Email to user", - "consumes": [ - "application/json" - ], - "description": "Send email via gov notify", - "produces": [ - "application/json", - "application/xml" - ], - "requestBody": { - "name": "Email", - "description": "Email body", - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/emailBody" - } - } - } - }, - "responses": { - "405": { - "description": "Failed" - } - } - } - }, - "/api/endpoint/createaccount_api": { - "post": { - "tags": [ - "Account" - ], - "description": "Create password", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/createcase_api": { - "post": { - "tags": [ - "Case" - ], - "description": "Create case", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/createmywatchedcases_api": { - "post": { - "tags": [ - "Portal", - "Case" - ], - "description": "Create my watched cases", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/deleteawaitingsubmissions_api": { - "delete": { - "tags": [ - "Case" - ], - "description": "Delete awaiting case submission", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/deleteamyrepresentations_api": { - "delete": { - "tags": [ - "Portal", - "Representations" - ], - "description": "Delete my representations", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/deleteamywatchedcases_api": { - "delete": { - "tags": [ - "Portal", - "Case" - ], - "description": "Delete my watched cases", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getadvancedsearch_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Advanced search", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getadvancedsearchpaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Advanced search paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getappealid_api": { - "get": { - "tags": [ - "Misc" - ], - "description": "Get Appeal ID", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getappealtypes_api": { - "get": { - "tags": [ - "Misc" - ], - "description": "Get Appeal Types", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getappealtypesfornewappeal_api": { - "get": { - "tags": [ - "Misc" - ], - "description": "Get Appeal Types for appeal", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getawaitingsubmission_api": { - "get": { - "tags": [ - "Case" - ], - "description": "get awaiting case submission", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getawaitingsubmissionproxy_api": { - "get": { - "tags": [ - "Case" - ], - "description": "get awaiting case submission proxy", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicdnssearch_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic DNS search", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicdnssearchdetails_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic DNS search details", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicdnssearchdetailspaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic DNS search details paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicdnssearchpaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic DNS search paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicdnsurlsearch_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic DNS search URL", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicsearch_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicsearchdetails_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search details", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicsearchdetailspaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search details paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getbasicsearchpaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getcase_api": { - "get": { - "tags": [ - "Case" - ], - "summary": "Not used", - "description": "Get case", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getlogin_api": { - "get": { - "tags": [ - "Login" - ], - "description": "Returns the hello world", - "responses": { - "200": { - "description": "hello world" - } - } - } - }, - "/api/endpoint/getlpa_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Get list of LPA's", - "responses": { - "200": { - "description": "Success" - } - }, - "security": [ - { - "relay_auth": [] - } - ] - } - }, - "/api/endpoint/getsearchdocumentdetails_api": { - "get": { - "tags": [ - "Search", - "Documents" - ], - "description": "Basic search documents details", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getsearchdocumentdetailspaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search documents details paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getsearchdocumenthistory_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search documents history", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getsearchdocumenthistorypaged_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search documents history paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/getsearchdocumentTypes_api": { - "get": { - "tags": [ - "Search" - ], - "description": "Basic search documents history paged", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/patchcase_api": { - "patch": { - "tags": [ - "Case" - ], - "description": "Patch case", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/updateaccount_api": { - "patch": { - "tags": [ - "Account" - ], - "description": "Update account", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/updatecase_api": { - "patch": { - "tags": [ - "Case" - ], - "description": "Update case", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/endpoint/updatepassword_api": { - "patch": { - "tags": [ - "Account" - ], - "description": "Update password", - "responses": { - "200": { - "description": "Success" - } - } - } - } - }, - "tags": [] -} \ No newline at end of file diff --git a/server.js b/server.js index 60d82f33..0289c329 100644 --- a/server.js +++ b/server.js @@ -29,7 +29,7 @@ const startServer = async (config) => { }; const app = next(serverOptions); - await app.prepare(); + await app.prepare(); // prepare BEFORE starting the server const handleNextRequests = app.getRequestHandler(); @@ -93,6 +93,7 @@ const startServer = async (config) => { return app; }; +// App configuration const startTime = Date.now(); const serverConfig = { hostname: "0.0.0.0", From 103c548e322860e3085c58bdc3d7176286f2b0a4 Mon Sep 17 00:00:00 2001 From: rdbsolutions Date: Tue, 8 Jul 2025 09:08:13 +0100 Subject: [PATCH 5/6] added scrolltop --- components/case/representation/representationComplete.js | 3 ++- components/newappeal/complete.js | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/components/case/representation/representationComplete.js b/components/case/representation/representationComplete.js index 82340e70..0bfa4b12 100644 --- a/components/case/representation/representationComplete.js +++ b/components/case/representation/representationComplete.js @@ -91,7 +91,8 @@ const RepComplete = (props) => { : props.props.currentView.caseReference .representationType, }), - setRepresentationMessageSent(true)); + setRepresentationMessageSent(true)), + window.scrollTo({ top: 0, behavior: "smooth" }); }); return (
diff --git a/components/newappeal/complete.js b/components/newappeal/complete.js index 68c1e1f8..648980c2 100644 --- a/components/newappeal/complete.js +++ b/components/newappeal/complete.js @@ -65,6 +65,7 @@ let CompleteAppeal = (props) => { console.log("patching///////////////"); // //patchCase(incidentId); + window.scrollTo({ top: 0, behavior: "smooth" }); }, [ props.appealType.caseReference, props.props.form.appealForm.values, From cb2ade03b4967461e702377bb27cb3c629c26783 Mon Sep 17 00:00:00 2001 From: rdbsolutions Date: Tue, 8 Jul 2025 09:08:35 +0100 Subject: [PATCH 6/6] update git ignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 7485fbf5..fbab4145 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,6 @@ public/swagger.json certificates/cert-key.pem certificates/cert.pem gitclean.sh + +dockerfile +Jenkinsfile