fix: return buffer in case of file response

This commit is contained in:
Saad Jutt
2022-02-20 05:40:03 +05:00
parent 0a4b202428
commit 3e6234e601
6 changed files with 59 additions and 25 deletions
+10 -5
View File
@@ -59,7 +59,7 @@ export class STPController {
public async executeReturnRaw(
@Request() request: express.Request,
@Query() _program: string
): Promise<string> {
): Promise<string | Buffer> {
return executeReturnRaw(request, _program)
}
@@ -87,7 +87,7 @@ export class STPController {
@Request() request: express.Request,
@Body() body?: ExecuteReturnJsonPayload,
@Query() _program?: string
): Promise<ExecuteReturnJsonResponse> {
): Promise<ExecuteReturnJsonResponse | Buffer> {
const program = _program ?? body?._program
return executeReturnJson(request, program!)
}
@@ -96,7 +96,7 @@ export class STPController {
const executeReturnRaw = async (
req: express.Request,
_program: string
): Promise<string> => {
): Promise<string | Buffer> => {
const query = req.query as ExecutionVars
const sasCodePath =
path
@@ -113,7 +113,10 @@ const executeReturnRaw = async (
req.res?.set(httpHeaders)
return result as string
// if (result instanceof Buffer)
// req.res?.writeHead(200, httpHeaders)
return result
} catch (err: any) {
throw {
code: 400,
@@ -127,7 +130,7 @@ const executeReturnRaw = async (
const executeReturnJson = async (
req: any,
_program: string
): Promise<ExecuteReturnJsonResponse> => {
): Promise<ExecuteReturnJsonResponse | Buffer> => {
const sasCodePath =
path
.join(getTmpFilesFolderPath(), _program)
@@ -145,6 +148,8 @@ const executeReturnJson = async (
true
)) as ExecuteReturnJson
if (webout instanceof Buffer) return webout
return {
status: 'success',
_webout: webout,