1
0
mirror of https://github.com/sasjs/server.git synced 2025-12-16 05:24:35 +00:00

feat: conver single session controller to two controller i.e. SASSessionController and JSSessionController

This commit is contained in:
2022-06-03 17:23:28 +05:00
parent 194eaec7d4
commit 07295aa151
4 changed files with 83 additions and 17 deletions

View File

@@ -17,7 +17,7 @@ import {
const execFilePromise = promisify(execFile)
export class SessionController {
export class SASSessionController {
private sessions: Session[] = []
private getReadySessions = (): Session[] =>
@@ -152,12 +152,51 @@ ${autoExecContent}`
}
}
export const getSessionController = (): SessionController => {
if (process.sessionController) return process.sessionController
export class JSSessionController {
public async getSession() {
const sessionId = generateUniqueFileName(generateTimestamp())
const sessionFolder = path.join(getSessionsFolder(), sessionId)
process.sessionController = new SessionController()
const creationTimeStamp = sessionId.split('-').pop() as string
// death time of session is 15 mins from creation
const deathTimeStamp = (
parseInt(creationTimeStamp) +
15 * 60 * 1000 -
1000
).toString()
return process.sessionController
const session: Session = {
id: sessionId,
ready: true,
inUse: true,
consumed: false,
completed: false,
creationTimeStamp,
deathTimeStamp,
path: sessionFolder
}
const headersPath = path.join(session.path, 'stpsrv_header.txt')
await createFile(headersPath, 'Content-type: application/json')
return session
}
}
export const getSASSessionController = (): SASSessionController => {
if (process.sasSessionController) return process.sasSessionController
process.sasSessionController = new SASSessionController()
return process.sasSessionController
}
export const getJSSessionController = (): JSSessionController => {
if (process.jsSessionController) return process.jsSessionController
process.jsSessionController = new JSSessionController()
return process.jsSessionController
}
const autoExecContent = `