mirror of
https://github.com/sasjs/server.git
synced 2026-01-05 05:40:06 +00:00
chore: added login, logout endpoints
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -5,8 +5,8 @@ node_modules/
|
|||||||
.env*
|
.env*
|
||||||
sas/
|
sas/
|
||||||
sasjs_root/
|
sasjs_root/
|
||||||
|
api/mocks/
|
||||||
tmp/
|
tmp/
|
||||||
api/mocks/*
|
|
||||||
build/
|
build/
|
||||||
sasjsbuild/
|
sasjsbuild/
|
||||||
sasjscore/
|
sasjscore/
|
||||||
|
|||||||
@@ -1,16 +1,21 @@
|
|||||||
import { readFile } from '@sasjs/utils'
|
import { readFile } from '@sasjs/utils'
|
||||||
import express, { Request } from 'express'
|
import express from 'express'
|
||||||
import path from 'path'
|
import path from 'path'
|
||||||
|
|
||||||
const mockSas9Router = express.Router()
|
const mockSas9Router = express.Router()
|
||||||
|
|
||||||
const { MOCK_SERVERTYPE } = process.env
|
const { MOCK_SERVERTYPE } = process.env
|
||||||
|
|
||||||
mockSas9Router.post('/SASStoredProcess/do/', async (req, res) => {
|
let loggedIn: boolean = false
|
||||||
let program = req.query._program?.toString() || ''
|
|
||||||
program = program.replace('/', '')
|
mockSas9Router.get('/SASStoredProcess', async (req, res) => {
|
||||||
const filePath = path.join(process.cwd(), 'mocks', program)
|
if (!loggedIn) {
|
||||||
|
res.redirect('/SASLogon/login')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const filePath = path.join(process.cwd(), 'mocks', "generic", "sas9", "sas-stored-process")
|
||||||
|
|
||||||
let file
|
let file
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -19,12 +24,44 @@ mockSas9Router.post('/SASStoredProcess/do/', async (req, res) => {
|
|||||||
)
|
)
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
console.error(`Mocked file on path: ${filePath} is not found.`)
|
console.error(`Mocked file on path: ${filePath} is not found.`)
|
||||||
|
res.status(403).send(err.toString())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
res.send(file)
|
||||||
|
} catch (err: any) {
|
||||||
|
res.status(403).send(err.toString())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
mockSas9Router.post('/SASStoredProcess/do/', async (req, res) => {
|
||||||
|
let program = req.query._program?.toString() || ''
|
||||||
|
program = program.replace('/', '')
|
||||||
|
const filePath = path.join(process.cwd(), 'mocks', ...program.split('/'))
|
||||||
|
|
||||||
|
let file
|
||||||
|
|
||||||
|
try {
|
||||||
|
file = await readFile(
|
||||||
|
filePath
|
||||||
|
)
|
||||||
|
} catch (err: any) {
|
||||||
|
let err = `Mocked file on path: ${filePath} is not found.`
|
||||||
|
console.error(err)
|
||||||
|
res.status(403).send(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!file) {
|
if (!file) {
|
||||||
console.error(`Mocked file on path: ${filePath} is not found.`)
|
let err = `Mocked file on path: ${filePath} is not found.`
|
||||||
|
console.error(err)
|
||||||
|
res.status(403).send(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!loggedIn) {
|
||||||
|
res.redirect('/SASLogon/login')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,15 +80,52 @@ mockSas9Router.post('/SASStoredProcess/do/', async (req, res) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
if (MOCK_SERVERTYPE === undefined) {
|
if (MOCK_SERVERTYPE !== undefined) {
|
||||||
mockSas9Router.post('/SASLogon/login', async (req, res) => {
|
mockSas9Router.get('/SASLogon/login', async (req, res) => {
|
||||||
|
const filePath = path.join(process.cwd(), 'mocks', 'generic', 'sas9', 'login')
|
||||||
|
|
||||||
try {
|
try {
|
||||||
res.send({ msg: 'Login' })
|
const file = await readFile(
|
||||||
|
filePath
|
||||||
|
)
|
||||||
|
|
||||||
|
res.send(file)
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
res.status(403).send(err.toString())
|
res.status(403).send(err.toString())
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
mockSas9Router.post('/SASLogon/login', async (req, res) => {
|
||||||
|
loggedIn = true
|
||||||
|
|
||||||
|
const filePath = path.join(process.cwd(), 'mocks', 'generic', 'sas9', 'logged-in')
|
||||||
|
|
||||||
|
try {
|
||||||
|
const file = await readFile(
|
||||||
|
filePath
|
||||||
|
)
|
||||||
|
|
||||||
|
res.send(file)
|
||||||
|
} catch (err: any) {
|
||||||
|
res.status(403).send(err.toString())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
mockSas9Router.get('/SASLogon/logout', async (req, res) => {
|
||||||
|
loggedIn = false
|
||||||
|
|
||||||
|
const filePath = path.join(process.cwd(), 'mocks', 'generic', 'sas9', 'logged-out')
|
||||||
|
|
||||||
|
try {
|
||||||
|
const file = await readFile(
|
||||||
|
filePath
|
||||||
|
)
|
||||||
|
|
||||||
|
res.send(file)
|
||||||
|
} catch (err: any) {
|
||||||
|
res.status(403).send(err.toString())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export default mockSas9Router
|
export default mockSas9Router
|
||||||
|
|||||||
@@ -26,7 +26,10 @@ webRouter.get('/', async (req, res) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
if (MOCK_SERVERTYPE !== undefined) {
|
/**
|
||||||
|
* If any type of mock is enabled, we won't use regular working logon endpoints
|
||||||
|
*/
|
||||||
|
if (MOCK_SERVERTYPE === undefined) {
|
||||||
webRouter.post('/SASLogon/login', desktopRestrict, async (req, res) => {
|
webRouter.post('/SASLogon/login', desktopRestrict, async (req, res) => {
|
||||||
const { error, value: body } = loginWebValidation(req.body)
|
const { error, value: body } = loginWebValidation(req.body)
|
||||||
if (error) return res.status(400).send(error.details[0].message)
|
if (error) return res.status(400).send(error.details[0].message)
|
||||||
@@ -57,14 +60,19 @@ webRouter.post(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
webRouter.get('/SASLogon/logout', desktopRestrict, async (req, res) => {
|
/**
|
||||||
try {
|
* If any type of mock is enabled, we won't use regular working logon endpoints
|
||||||
await controller.logout(req)
|
*/
|
||||||
res.status(200).send('OK!')
|
if (MOCK_SERVERTYPE === undefined) {
|
||||||
} catch (err: any) {
|
webRouter.get('/SASLogon/logout', desktopRestrict, async (req, res) => {
|
||||||
res.status(403).send(err.toString())
|
try {
|
||||||
}
|
await controller.logout(req)
|
||||||
})
|
res.status(200).send('OK!')
|
||||||
|
} catch (err: any) {
|
||||||
|
res.status(403).send(err.toString())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
webRouter.use('/', mockSas9Router)
|
webRouter.use('/', mockSas9Router)
|
||||||
// disabled for now
|
// disabled for now
|
||||||
|
|||||||
Reference in New Issue
Block a user