Skip to content

Commit

Permalink
convert readOnlyMiddlware to typescript (#4365)
Browse files Browse the repository at this point in the history
  • Loading branch information
jonaylor89 committed Nov 28, 2022
1 parent 74ad79f commit 43a5360
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
const {
import type { Request, Response } from 'express'
import {
readOnlyMiddleware,
readOnlyMiddlewareHelper
} = require('./readOnlyMiddleware')
const assert = require('assert')
const config = require('../../config')
const { resFactory, loggerFactory } = require('../../../test/lib/reqMock')
} from './readOnlyMiddleware'
import assert from 'assert'
import config from '../../config'
import { resFactory, loggerFactory } from '../../../test/lib/reqMock'

describe('Test read-only middleware', function () {
beforeEach(function () {
Expand All @@ -20,7 +21,7 @@ describe('Test read-only middleware', function () {
config.set('spID', 1)
let nextCalled = false

readOnlyMiddleware({ method }, {}, function () {
readOnlyMiddleware({ method } as Request, {} as Response, function () {
nextCalled = true
})

Expand All @@ -43,8 +44,8 @@ describe('Test read-only middleware', function () {
const req = {
method,
logger
}
const res = resFactory()
} as unknown as Request
const res = resFactory() as unknown as Response

readOnlyMiddleware(req, res, function () {
nextCalled = true
Expand All @@ -70,8 +71,8 @@ describe('Test read-only middleware', function () {
const req = {
method,
logger
}
const res = resFactory()
} as unknown as Request
const res = resFactory() as unknown as Response

readOnlyMiddleware(req, res, function () {
nextCalled = true
Expand All @@ -96,8 +97,8 @@ describe('Test read-only middleware', function () {
const req = {
method,
logger
}
const res = resFactory()
} as unknown as Request
const res = resFactory() as unknown as Response

readOnlyMiddleware(req, res, function () {
nextCalled = true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
const { sendResponse, errorResponseServerError } = require('../../apiHelpers')
const config = require('../../config')
import type { Request, Response, NextFunction } from 'express'
import { sendResponse, errorResponseServerError } from '../../apiHelpers'
import config from '../../config'

/**
* Middleware to block all non-GET api calls if the server should be in "read-only" mode
*/
function readOnlyMiddleware(req, res, next) {
export function readOnlyMiddleware(
req: Request,
res: Response,
next: NextFunction
) {
const isReadOnlyMode = config.get('isReadOnlyMode')
const spIDNotDefined = !config.get('spID') || config.get('spID') <= 0 // true if not a valid spID
const method = req.method
Expand All @@ -29,12 +34,14 @@ function readOnlyMiddleware(req, res, next) {
* @param {String} method REST method for this request eg. POST, GET
* @returns {Boolean} returns true if the request can proceed. eg GET in read only or any request in non read-only mode
*/
function readOnlyMiddlewareHelper(isReadOnlyMode, spIDNotDefined, method) {
export function readOnlyMiddlewareHelper(
isReadOnlyMode: boolean,
spIDNotDefined: boolean,
method: string
) {
if ((isReadOnlyMode || spIDNotDefined) && method !== 'GET') {
return false
}

return true
}

module.exports = { readOnlyMiddleware, readOnlyMiddlewareHelper }

0 comments on commit 43a5360

Please sign in to comment.