Skip to content

Commit

Permalink
feat: after script tips
Browse files Browse the repository at this point in the history
  • Loading branch information
scarqin committed Jul 14, 2022
1 parent 080e0f9 commit 5c434e9
Show file tree
Hide file tree
Showing 12 changed files with 276 additions and 152 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ export class ApiDetailMockComponent implements OnInit, OnChanges {
}

getApiUrl(mock?: ApiMockEntity) {
const data = eoFormatRequestData(this.apiData, { env: {}, beforeScript: '', afterScript: '' }, 'en-US');
const data = eoFormatRequestData(this.apiData, { env: {}, beforeScript: '', afterScript: '',lang:'en' }, 'en-US');
const uri = this.apiTest.transferUrlAndQuery(data.URL, this.apiData.queryParams, {
base: 'query',
replaceType: 'replace',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ export class ApiMockComponent implements OnInit, OnChanges {
}

getApiUrl(mock?: ApiMockEntity) {
const data = eoFormatRequestData(this.apiData, { env: {}, beforeScript: '', afterScript: '' }, 'en-US');
const data = eoFormatRequestData(this.apiData, { env: {}, beforeScript: '', afterScript: '', lang: 'en' }, 'en-US');
const uri = this.apiTest.transferUrlAndQuery(data.URL, this.apiData.queryParams, {
base: 'query',
replaceType: 'replace',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import {
beforeScriptCompletions,
afterScriptCompletions,
} from 'eo/workbench/browser/src/app/shared/components/api-script/constant';
import { LanguageService } from 'eo/workbench/browser/src/app/core/services/language/language.service';

@Component({
selector: 'eo-api-test',
Expand Down Expand Up @@ -78,7 +79,8 @@ export class ApiTestComponent implements OnInit, OnDestroy {
private apiTab: ApiTabService,
private testServerService: TestServerService,
private messageService: MessageService,
private storage: StorageService
private storage: StorageService,
private lang:LanguageService
) {
this.testServer = this.testServerService.instance;
this.testServer.init((message) => {
Expand Down Expand Up @@ -191,6 +193,7 @@ export class ApiTestComponent implements OnInit, OnDestroy {
env: this.env,
beforeScript: this.beforeScript,
afterScript: this.afterScript,
lang:this.lang.systemLanguage==='zh-Hans'?'cn':'en'
}),
});
this.status$.next('testing');
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
import { listToTreeHasLevel } from '../../../utils/tree/tree.utils';
import { formatDate } from '@angular/common';
import { TestLocalNodeData } from './local-node/api-server-data.model';
import { ApiBodyType, ApiTestResGeneral, ApiTestHistoryResponse } from '../storage/index.model';
import { ApiBodyType } from '../storage/index.model';
import { ApiTestRes } from 'eo/workbench/browser/src/app/shared/services/api-test/test-server.model';
const METHOD = ['POST', 'GET', 'PUT', 'DELETE', 'HEAD', 'OPTIONS', 'PATCH'],
PROTOCOL = ['http', 'https'],
REQUEST_BODY_TYPE = ['formData', 'raw', 'json', 'xml', 'binary'];

export const eoFormatRequestData = (data, opts = { env: {}, beforeScript: '', afterScript: '' }, locale) => {
export const eoFormatRequestData = (
data,
opts = { env: {}, beforeScript: '', afterScript: '', lang: 'en' },
locale
) => {
const formatUri = (uri, rest = []) => {
if (!Array.isArray(rest)) {
return uri;
Expand Down Expand Up @@ -91,6 +95,7 @@ export const eoFormatRequestData = (data, opts = { env: {}, beforeScript: '', af
return result;
};
const result: TestLocalNodeData = {
lang:opts.lang,
URL: formatUri(data.uri, data.restParams),
method: data.method,
methodType: METHOD.indexOf(data.method).toString(),
Expand All @@ -109,20 +114,28 @@ export const eoFormatRequestData = (data, opts = { env: {}, beforeScript: '', af
return result;
};
export const eoFormatResponseData = ({ report, history, id }) => {
console.log(report, history, id);
let result: ApiTestRes;
let reportList = report.reportList || [];
//preScript code tips
if (report.errorReason) {
reportList.unshift({
type: 'interrupt',
content: report.errorReason,
});
}
//afterScript code tips
if (report.response?.errorReason) {
reportList.push({
type: 'interrupt',
content: report.response?.errorReason,
});
}
if (['error'].includes(report.status)) {
result = {
status: 'error',
id,
response: {
reportList: [
{
type: 'interrupt',
content: report.errorReason,
},
...report.reportList,
],
reportList: reportList,
},
};
return result;
Expand All @@ -131,6 +144,7 @@ export const eoFormatResponseData = ({ report, history, id }) => {
response = {
statusCode: httpCode,
...response,
reportList,
body: response.body || '',
headers: response.headers.map((val) => ({ name: val.key, value: val.value })),
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,8 @@ export interface TestLocalNodeData {
testTime: string;
globals?: object;
globalHeader?: object;
/**
* System language
*/
lang:string;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Injectable, Inject, LOCALE_ID } from '@angular/core';
import { ElectronService } from '../../../../core/services';
import { TestServer } from '../test-server.model';
import { requestDataOpts, TestServer } from '../test-server.model';
import { eoFormatRequestData, eoFormatResponseData } from '../api-test.utils';
@Injectable()
export class TestServerLocalNodeService implements TestServer {
Expand All @@ -22,7 +22,7 @@ export class TestServerLocalNodeService implements TestServer {
*
* @param input
*/
formatRequestData(data, opts = { env: {}, beforeScript: '', afterScript: '' }) {
formatRequestData(data, opts: requestDataOpts) {
return eoFormatRequestData(data, opts, this.locale);
}
/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Injectable, Inject, LOCALE_ID } from '@angular/core';

import { TestServer } from '../test-server.model';
import { requestDataOpts, TestServer } from '../test-server.model';
import { eoFormatRequestData, eoFormatResponseData } from '../api-test.utils';
@Injectable()
export class TestServerRemoteService implements TestServer {
Expand Down Expand Up @@ -76,7 +76,7 @@ export class TestServerRemoteService implements TestServer {
*
* @param input
*/
formatRequestData(data, opts = { env: {}, beforeScript: '', afterScript: '' }) {
formatRequestData(data, opts:requestDataOpts) {
return eoFormatRequestData(data, opts, this.locale);
}
/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Injectable, Inject, LOCALE_ID } from '@angular/core';

import { TestServer } from '../test-server.model';
import { requestDataOpts, TestServer } from '../test-server.model';
import { eoFormatRequestData, eoFormatResponseData } from '../api-test.utils';
@Injectable()
/**
Expand Down Expand Up @@ -78,7 +78,7 @@ export class TestServerServerlessService implements TestServer {
*
* @param input
*/
formatRequestData(data, opts = { env: {}, beforeScript: '', afterScript: '' }) {
formatRequestData(data, opts: requestDataOpts) {
return eoFormatRequestData(data, opts, this.locale);
}
/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
import { Environment, ApiTestHistoryResponse, ApiTestResGeneral, ApiTestHistoryFrame } from '../storage/index.model';
export interface ApiTestRes{
status:'finish'|'error',
id: number;
response: ApiTestHistoryResponse|any;
report?: any;
general?: ApiTestResGeneral;
history?: ApiTestHistoryFrame|any;
export interface ApiTestRes {
status: 'finish' | 'error';
id: number;
response: ApiTestHistoryResponse | any;
report?: any;
general?: ApiTestResGeneral;
history?: ApiTestHistoryFrame | any;
}
export interface TestServer {
init: (receiveMessage: (message: any) => void) => void;
send: (action: string, message: any) => void;
formatRequestData: (apiData, opts: { env: Environment; beforeScript: string; afterScript: string }) => any;
formatRequestData: (apiData, opts: requestDataOpts) => any;
formatResponseData: (res) => ApiTestRes;
close: () => void;
}

export interface requestDataOpts {
env: Environment;
beforeScript: string;
afterScript: string;
lang: string;
}

0 comments on commit 5c434e9

Please sign in to comment.