Вынес запросы в клиент
This commit is contained in:
parent
e0a9da229e
commit
5fcfb8694c
@ -4,6 +4,6 @@ export enum ProcessesType
|
||||
HISTORY = 'history',
|
||||
}
|
||||
|
||||
export class GetProcessesRequest {
|
||||
export interface GetProcessesRequest {
|
||||
type?: ProcessesType
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
export class PaginationRequest {
|
||||
export interface PaginationRequest {
|
||||
page?: number
|
||||
limit?: number
|
||||
}
|
||||
}
|
||||
|
3
api/sm/requests/process-ouput.ts
Normal file
3
api/sm/requests/process-ouput.ts
Normal file
@ -0,0 +1,3 @@
|
||||
export interface ProcessOutputRequest {
|
||||
id: string
|
||||
}
|
4
api/sm/requests/repeat-process.ts
Normal file
4
api/sm/requests/repeat-process.ts
Normal file
@ -0,0 +1,4 @@
|
||||
export interface RepeatProcessRequest {
|
||||
id: string
|
||||
requestId: string
|
||||
}
|
4
api/sm/requests/run-command.ts
Normal file
4
api/sm/requests/run-command.ts
Normal file
@ -0,0 +1,4 @@
|
||||
export interface RunCommandRequest {
|
||||
commandName: string
|
||||
requestId: string
|
||||
}
|
11
api/sm/schemas/process-output.ts
Normal file
11
api/sm/schemas/process-output.ts
Normal file
@ -0,0 +1,11 @@
|
||||
import {Method, SchemaInterface} from "../../schema-client";
|
||||
|
||||
class ProcessOutputSchema implements SchemaInterface {
|
||||
method = Method.GET
|
||||
url = '/system-monitoring/processes/{id}/output'
|
||||
contentType = null
|
||||
}
|
||||
|
||||
export let processOutputSchema = new ProcessOutputSchema()
|
||||
export default processOutputSchema
|
||||
|
10
api/sm/schemas/repeat-process.ts
Normal file
10
api/sm/schemas/repeat-process.ts
Normal file
@ -0,0 +1,10 @@
|
||||
import {Method, SchemaInterface} from "../../schema-client";
|
||||
|
||||
class RepeatProcessSchema implements SchemaInterface {
|
||||
method = Method.POST
|
||||
url = '/system-monitoring/processes/{id}/repeat'
|
||||
contentType = null
|
||||
}
|
||||
|
||||
export let repeatProcessSchema = new RepeatProcessSchema()
|
||||
export default repeatProcessSchema
|
@ -7,6 +7,10 @@ import {ResponseInterface} from "./responses/response";
|
||||
import {CommandResponseInterface} from "./responses/comamnds";
|
||||
import commandsSchema from "./schemas/commands";
|
||||
import runCommandsSchema from "./schemas/run-commands";
|
||||
import {RepeatProcessRequest} from "./requests/repeat-process";
|
||||
import repeatProcessSchema from "./schemas/repeat-process";
|
||||
import processOutputSchema from "./schemas/process-output";
|
||||
import {ProcessOutputRequest} from "./requests/process-ouput";
|
||||
|
||||
export class SMClient {
|
||||
schemaClient: SchemaClient
|
||||
@ -40,7 +44,23 @@ export class SMClient {
|
||||
headers: headers
|
||||
}
|
||||
}
|
||||
|
||||
async repeatProcess(data: RepeatProcessRequest): Promise<ResponseInterface> {
|
||||
let { responseData, headers } = await this.schemaClient.send(repeatProcessSchema, data)
|
||||
return {
|
||||
data: responseData as ProcessesResponseInterface[],
|
||||
headers: headers
|
||||
}
|
||||
}
|
||||
|
||||
async getProcessOutput(data: ProcessOutputRequest): Promise<ResponseInterface> {
|
||||
let { responseData, headers } = await this.schemaClient.send(processOutputSchema, data)
|
||||
return {
|
||||
data: responseData,
|
||||
headers: headers
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export let smClient = new SMClient
|
||||
export default smClient
|
||||
export default smClient
|
||||
|
@ -85,15 +85,10 @@ export default function Processes() {
|
||||
refreshLock = false
|
||||
}
|
||||
let output = async (process: ProcessInterface) => {
|
||||
let response = await fetch(`http://fmw.sipachev.sv/system-monitoring/processes/${process.id}/output`,
|
||||
{
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'X-Plugin-Token': 'passw0rd',
|
||||
'X-Pagination-Count': '0',
|
||||
},
|
||||
});
|
||||
const output: string = await response.text()
|
||||
const { data: output } = await smClient.getProcessOutput({
|
||||
id: process.id
|
||||
})
|
||||
|
||||
let a = document.createElement("a");
|
||||
let file = new Blob([output], {type: 'plain/text'});
|
||||
a.href = URL.createObjectURL(file);
|
||||
@ -126,18 +121,12 @@ export default function Processes() {
|
||||
return
|
||||
}
|
||||
lock = true
|
||||
let url = `http://fmw.sipachev.sv/system-monitoring/processes/${selectedProcess.id}/repeat`
|
||||
let data = {
|
||||
|
||||
await smClient.repeatProcess({
|
||||
id: selectedProcess.id,
|
||||
requestId: dialogId
|
||||
}
|
||||
let response = await fetch(url, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=utf-8',
|
||||
'X-Plugin-Token': 'passw0rd'
|
||||
},
|
||||
body: JSON.stringify(data)
|
||||
});
|
||||
})
|
||||
|
||||
lock = false
|
||||
setSelectedProcess(null)
|
||||
setOpen(false)
|
||||
|
Loading…
Reference in New Issue
Block a user