Merge branch 'main' of https://github.com/foss42/apidash into add-go-http-codegen

This commit is contained in:
Apoorv Dwivedi
2024-03-12 12:30:03 +05:30
32 changed files with 1589 additions and 586 deletions

View File

@ -1,6 +1,7 @@
import 'package:apidash/codegen/go/http.dart';
import 'package:apidash/models/models.dart' show RequestModel;
import 'package:apidash/consts.dart';
import 'package:apidash/utils/utils.dart' show getNewUuid;
import 'dart/http.dart';
import 'dart/dio.dart';
import 'kotlin/okhttp.dart';
@ -15,36 +16,45 @@ class Codegen {
String? getCode(
CodegenLanguage codegenLanguage,
RequestModel requestModel,
String defaultUriScheme,
) {
String defaultUriScheme, {
String? boundary,
}) {
String url = requestModel.url;
if (url.isEmpty) {
url = kDefaultUri;
}
if (!url.contains("://") && url.isNotEmpty) {
url = "$defaultUriScheme://$url";
}
var rM = requestModel.copyWith(url: url);
switch (codegenLanguage) {
case CodegenLanguage.curl:
return cURLCodeGen().getCode(requestModel, defaultUriScheme);
return cURLCodeGen().getCode(rM);
case CodegenLanguage.har:
return HARCodeGen().getCode(requestModel, defaultUriScheme);
return HARCodeGen().getCode(rM, defaultUriScheme, boundary: boundary);
case CodegenLanguage.dartHttp:
return DartHttpCodeGen().getCode(requestModel, defaultUriScheme);
return DartHttpCodeGen().getCode(rM);
case CodegenLanguage.dartDio:
return DartDioCodeGen().getCode(requestModel, defaultUriScheme);
return DartDioCodeGen().getCode(rM);
case CodegenLanguage.jsAxios:
return AxiosCodeGen().getCode(requestModel, defaultUriScheme);
return AxiosCodeGen().getCode(rM);
case CodegenLanguage.jsFetch:
return FetchCodeGen().getCode(requestModel, defaultUriScheme);
return FetchCodeGen().getCode(rM);
case CodegenLanguage.nodejsAxios:
return AxiosCodeGen(isNodeJs: true)
.getCode(requestModel, defaultUriScheme);
return AxiosCodeGen(isNodeJs: true).getCode(rM);
case CodegenLanguage.nodejsFetch:
return FetchCodeGen(isNodeJs: true)
.getCode(requestModel, defaultUriScheme);
return FetchCodeGen(isNodeJs: true).getCode(rM);
case CodegenLanguage.kotlinOkHttp:
return KotlinOkHttpCodeGen().getCode(requestModel, defaultUriScheme);
return KotlinOkHttpCodeGen().getCode(rM);
case CodegenLanguage.pythonHttpClient:
return PythonHttpClientCodeGen()
.getCode(requestModel, defaultUriScheme);
.getCode(rM, boundary: boundary ?? getNewUuid());
case CodegenLanguage.pythonRequests:
return PythonRequestsCodeGen().getCode(requestModel, defaultUriScheme);
return PythonRequestsCodeGen().getCode(rM, boundary: boundary);
case CodegenLanguage.goHttp:
return GoHttpCodeGen().getCode(requestModel, defaultUriScheme);
return GoHttpCodeGen().getCode(rM);
}
}
}

View File

@ -0,0 +1,15 @@
String jsonToPyDict(String jsonString) {
Map<String, String> replaceWithMap = {
"null": "None",
"true": "True",
"false": "False"
};
String pyDict = jsonString;
for (var k in replaceWithMap.keys) {
RegExp regExp = RegExp(k + r'(?=([^"]*"[^"]*")*[^"]*$)');
pyDict = pyDict.replaceAllMapped(regExp, (match) {
return replaceWithMap[match.group(0)] ?? match.group(0)!;
});
}
return pyDict;
}

View File

@ -8,15 +8,10 @@ import 'shared.dart';
class DartDioCodeGen {
String? getCode(
RequestModel requestModel,
String defaultUriScheme,
) {
try {
String url = requestModel.url;
if (!url.contains("://") && url.isNotEmpty) {
url = "$defaultUriScheme://$url";
}
final next = generatedDartCode(
url: url,
url: requestModel.url,
method: requestModel.method,
queryParams: requestModel.enabledParamsMap,
headers: requestModel.enabledHeadersMap,

View File

@ -9,15 +9,10 @@ import 'shared.dart';
class DartHttpCodeGen {
String? getCode(
RequestModel requestModel,
String defaultUriScheme,
) {
try {
String url = requestModel.url;
if (!url.contains("://") && url.isNotEmpty) {
url = "$defaultUriScheme://$url";
}
final next = generatedDartCode(
url: url,
url: requestModel.url,
method: requestModel.method,
queryParams: requestModel.enabledParamsMap,
headers: {...requestModel.enabledHeadersMap},

View File

@ -12,7 +12,7 @@ class AxiosCodeGen {
String kStringImportNode = """{% if isNodeJs %}import axios from 'axios';
{% endif %}{% if isFormDataRequest and isNodeJs %}const fs = require('fs');{% endif %}
{% endif %}{% if hasFormData and isNodeJs %}const fs = require('fs');{% endif %}
""";
String kTemplateStart = """let config = {
@ -73,18 +73,16 @@ async function buildFormData(fields) {
''';
String? getCode(
RequestModel requestModel,
String defaultUriScheme,
) {
try {
jj.Template kNodejsImportTemplate = jj.Template(kStringImportNode);
String importsData = kNodejsImportTemplate.render({
"isFormDataRequest": requestModel.isFormDataRequest,
"hasFormData": requestModel.hasFormData,
"isNodeJs": isNodeJs,
});
String result = importsData;
if (requestModel.isFormDataRequest &&
requestModel.formDataMapList.isNotEmpty) {
if (requestModel.hasFormData && requestModel.formDataMapList.isNotEmpty) {
var templateMultiPartBody = jj.Template(kMultiPartBodyTemplate);
var renderedMultiPartBody = templateMultiPartBody.render({
"isNodeJs": isNodeJs,
@ -92,17 +90,14 @@ async function buildFormData(fields) {
result += renderedMultiPartBody;
}
String url = requestModel.url;
if (!url.contains("://") && url.isNotEmpty) {
url = "$defaultUriScheme://$url";
}
var rM = requestModel.copyWith(url: url);
var harJson = requestModelToHARJsonRequest(rM, useEnabled: true);
var harJson = requestModelToHARJsonRequest(
requestModel,
useEnabled: true,
);
var templateStart = jj.Template(kTemplateStart);
result += templateStart.render({
"url": stripUrlParams(url),
"url": stripUrlParams(requestModel.url),
"method": harJson["method"].toLowerCase(),
});
@ -118,22 +113,21 @@ async function buildFormData(fields) {
}
var headers = harJson["headers"];
if (headers.isNotEmpty || requestModel.isFormDataRequest) {
if (headers.isNotEmpty || requestModel.hasFormData) {
var templateHeader = jj.Template(kTemplateHeader);
var m = {};
for (var i in headers) {
m[i["name"]] = i["value"];
}
if (requestModel.isFormDataRequest) {
m['Content-Type'] = 'multipart/form-data';
if (requestModel.hasFormData) {
m[kHeaderContentType] = 'multipart/form-data';
}
result += templateHeader
.render({"headers": padMultilineString(kEncoder.convert(m), 2)});
}
var templateBody = jj.Template(kTemplateBody);
if (requestModel.isFormDataRequest &&
requestModel.formDataMapList.isNotEmpty) {
if (requestModel.hasFormData && requestModel.formDataMapList.isNotEmpty) {
var getFieldDataTemplate = jj.Template(kGetFormDataTemplate);
result += templateBody.render({

View File

@ -12,7 +12,7 @@ class FetchCodeGen {
String kStringImportNode = """
import fetch from 'node-fetch';
{% if isFormDataRequest %}const fs = require('fs');{% endif %}
{% if hasFormData %}const fs = require('fs');{% endif %}
""";
@ -73,29 +73,26 @@ fetch(url, options)
String? getCode(
RequestModel requestModel,
String defaultUriScheme,
) {
try {
jj.Template kNodejsImportTemplate = jj.Template(kStringImportNode);
String importsData = kNodejsImportTemplate.render({
"isFormDataRequest": requestModel.isFormDataRequest,
"hasFormData": requestModel.hasFormData,
});
String result = isNodeJs ? importsData : "";
if (requestModel.isFormDataRequest) {
if (requestModel.hasFormData) {
var templateMultiPartBody = jj.Template(kMultiPartBodyTemplate);
result += templateMultiPartBody.render({
"isNodeJs": isNodeJs,
"fields_list": json.encode(requestModel.formDataMapList),
});
}
String url = requestModel.url;
if (!url.contains("://") && url.isNotEmpty) {
url = "$defaultUriScheme://$url";
}
var rM = requestModel.copyWith(url: url);
var harJson = requestModelToHARJsonRequest(rM, useEnabled: true);
var harJson = requestModelToHARJsonRequest(
requestModel,
useEnabled: true,
);
var templateStart = jj.Template(kTemplateStart);
result += templateStart.render({
@ -108,8 +105,8 @@ fetch(url, options)
if (headers.isNotEmpty) {
var templateHeader = jj.Template(kTemplateHeader);
var m = {};
if (requestModel.isFormDataRequest) {
m["Content-Type"] = "multipart/form-data";
if (requestModel.hasFormData) {
m[kHeaderContentType] = "multipart/form-data";
}
for (var i in headers) {
m[i["name"]] = i["value"];
@ -124,7 +121,7 @@ fetch(url, options)
result += templateBody.render({
"body": kEncoder.convert(harJson["postData"]["text"]),
});
} else if (requestModel.isFormDataRequest) {
} else if (requestModel.hasFormData) {
var templateBody = jj.Template(kTemplateBody);
result += templateBody.render({
"body": 'payload',

View File

@ -75,7 +75,6 @@ import okhttp3.MultipartBody""";
String? getCode(
RequestModel requestModel,
String defaultUriScheme,
) {
try {
String result = "";
@ -83,13 +82,8 @@ import okhttp3.MultipartBody""";
bool hasBody = false;
bool hasFormData = false;
String url = requestModel.url;
if (!url.contains("://") && url.isNotEmpty) {
url = "$defaultUriScheme://$url";
}
var rec = getValidRequestUri(
url,
requestModel.url,
requestModel.enabledRequestParams,
);
Uri? uri = rec.$1;
@ -113,7 +107,7 @@ import okhttp3.MultipartBody""";
var method = requestModel.method;
var requestBody = requestModel.requestBody;
if (requestModel.isFormDataRequest) {
if (requestModel.hasFormData) {
hasFormData = true;
var formDataTemplate = jj.Template(kFormDataBody);
@ -152,7 +146,7 @@ import okhttp3.MultipartBody""";
var templateRequestEnd = jj.Template(kTemplateRequestEnd);
result += templateRequestEnd.render({
"method": method.name.toLowerCase(),
"hasBody": (hasBody || requestModel.isFormDataRequest) ? "body" : "",
"hasBody": (hasBody || requestModel.hasFormData) ? "body" : "",
});
}
return result;

View File

@ -1,6 +1,7 @@
import 'package:jinja/jinja.dart' as jj;
import 'package:apidash/utils/utils.dart' show requestModelToHARJsonRequest;
import 'package:apidash/models/models.dart' show RequestModel;
import 'package:apidash/consts.dart';
// ignore: camel_case_types
class cURLCodeGen {
@ -11,7 +12,7 @@ class cURLCodeGen {
--header '{{name}}: {{value}}'
""";
String kTemplateFormData = """ \\
--form '{{name}}: {{value}}'
--form '{{name}}={{value}}'
""";
String kTemplateBody = """ \\
@ -20,25 +21,21 @@ class cURLCodeGen {
String? getCode(
RequestModel requestModel,
String defaultUriScheme,
) {
try {
String result = "";
String url = requestModel.url;
if (!url.contains("://") && url.isNotEmpty) {
url = "$defaultUriScheme://$url";
}
var rM = requestModel.copyWith(url: url);
var harJson = requestModelToHARJsonRequest(rM, useEnabled: true);
var harJson = requestModelToHARJsonRequest(
requestModel,
useEnabled: true,
);
var templateStart = jj.Template(kTemplateStart);
result += templateStart.render({
"method": switch (harJson["method"]) {
"GET" => "",
"HEAD" => " --head",
_ => " --request ${harJson["method"]} \\\n"
_ => " --request ${harJson["method"]} \\\n "
},
"url": harJson["url"],
});
@ -46,33 +43,31 @@ class cURLCodeGen {
var headers = harJson["headers"];
if (headers.isNotEmpty) {
for (var item in headers) {
if (requestModel.hasFormData && item["name"] == kHeaderContentType) {
continue;
}
var templateHeader = jj.Template(kTemplateHeader);
result += templateHeader
.render({"name": item["name"], "value": item["value"]});
}
}
if (harJson['formData'] != null) {
var formDataList = harJson['formData'] as List<Map<String, dynamic>>;
for (var formData in formDataList) {
if (requestModel.hasJsonData || requestModel.hasTextData) {
var templateBody = jj.Template(kTemplateBody);
result += templateBody.render({"body": requestModel.requestBody});
} else if (requestModel.hasFormData) {
for (var formData in requestModel.formDataList) {
var templateFormData = jj.Template(kTemplateFormData);
if (formData['type'] != null &&
formData['name'] != null &&
formData['value'] != null &&
formData['name']!.isNotEmpty &&
formData['value']!.isNotEmpty) {
if (formData.name.isNotEmpty && formData.value.isNotEmpty) {
result += templateFormData.render({
"name": formData["name"],
"name": formData.name,
"value":
"${formData['type'] == 'file' ? '@' : ''}${formData["value"]}",
"${formData.type == FormDataType.file ? '@' : ''}${formData.value}",
});
}
}
}
if (harJson["postData"]?["text"] != null) {
var templateBody = jj.Template(kTemplateBody);
result += templateBody.render({"body": harJson["postData"]["text"]});
}
return result;
} catch (e) {
return null;

View File

@ -5,13 +5,15 @@ import 'package:apidash/models/models.dart' show RequestModel;
class HARCodeGen {
String? getCode(
RequestModel requestModel,
String defaultUriScheme,
) {
String defaultUriScheme, {
String? boundary,
}) {
try {
var harString = kEncoder.convert(requestModelToHARJsonRequest(
requestModel,
defaultUriScheme: defaultUriScheme,
useEnabled: true,
boundary: boundary,
));
return harString;
} catch (e) {

View File

@ -2,13 +2,13 @@ import 'dart:io';
import 'dart:convert';
import 'package:jinja/jinja.dart' as jj;
import 'package:apidash/utils/utils.dart'
show getNewUuid, getValidRequestUri, padMultilineString;
show getValidRequestUri, padMultilineString;
import 'package:apidash/models/models.dart' show RequestModel;
import 'package:apidash/consts.dart';
class PythonHttpClientCodeGen {
final String kTemplateStart = """import http.client
{% if isFormDataRequest %}import mimetypes
{% if hasFormData %}import mimetypes
from codecs import encode
{% endif %}
""";
@ -87,30 +87,23 @@ dataList = build_data_list({{fields_list}})
body = b'\r\n'.join(dataList)
''';
String? getCode(
RequestModel requestModel,
String defaultUriScheme,
) {
String uuid = getNewUuid();
RequestModel requestModel, {
String? boundary,
}) {
try {
String result = "";
bool hasHeaders = false;
bool hasQuery = false;
bool hasBody = false;
String url = requestModel.url;
if (!url.contains("://") && url.isNotEmpty) {
url = "$defaultUriScheme://$url";
}
var templateStartUrl = jj.Template(kTemplateStart);
result += templateStartUrl.render(
{
"isFormDataRequest": requestModel.isFormDataRequest,
"hasFormData": requestModel.hasFormData,
},
);
var rec = getValidRequestUri(
url,
requestModel.url,
requestModel.enabledRequestParams,
);
@ -132,7 +125,7 @@ body = b'\r\n'.join(dataList)
var requestBody = requestModel.requestBody;
if (kMethodsWithBody.contains(method) &&
requestBody != null &&
!requestModel.isFormDataRequest) {
!requestModel.hasFormData) {
var contentLength = utf8.encode(requestBody).length;
if (contentLength > 0) {
hasBody = true;
@ -144,11 +137,11 @@ body = b'\r\n'.join(dataList)
var headersList = requestModel.enabledRequestHeaders;
if (headersList != null || hasBody) {
var headers = requestModel.enabledHeadersMap;
if (requestModel.isFormDataRequest) {
if (requestModel.hasFormData) {
var formHeaderTemplate =
jj.Template(kTemplateFormHeaderContentType);
headers[HttpHeaders.contentTypeHeader] = formHeaderTemplate.render({
"boundary": uuid,
"boundary": boundary,
});
}
@ -164,12 +157,12 @@ body = b'\r\n'.join(dataList)
result += templateHeaders.render({"headers": headersString});
}
}
if (requestModel.isFormDataRequest) {
if (requestModel.hasFormData) {
var formDataBodyData = jj.Template(kStringFormDataBody);
result += formDataBodyData.render(
{
"fields_list": json.encode(requestModel.formDataMapList),
"boundary": uuid,
"boundary": boundary,
},
);
}
@ -186,11 +179,11 @@ body = b'\r\n'.join(dataList)
"queryParamsStr": hasQuery ? " + queryParamsStr" : "",
});
if (hasBody || requestModel.isFormDataRequest) {
if (hasBody || requestModel.hasFormData) {
result += kStringRequestBody;
}
if (hasHeaders || requestModel.isFormDataRequest) {
if (hasHeaders || requestModel.hasFormData) {
result += kStringRequestHeaders;
}

View File

@ -1,15 +1,14 @@
import 'dart:io';
import 'dart:convert';
import 'package:jinja/jinja.dart' as jj;
import 'package:apidash/consts.dart';
import 'package:apidash/utils/utils.dart'
show getNewUuid, getValidRequestUri, padMultilineString, stripUriParams;
show getValidRequestUri, stripUriParams, getFilenameFromPath;
import 'package:apidash/models/models.dart' show RequestModel;
import '../codegen_utils.dart';
class PythonRequestsCodeGen {
final String kTemplateStart = """import requests
{% if isFormDataRequest %}import mimetypes
from codecs import encode
{% if hasFormData %}from requests_toolbelt.multipart.encoder import MultipartEncoder
{% endif %}
url = '{{url}}'
@ -20,7 +19,6 @@ url = '{{url}}'
params = {{params}}
""";
int kParamsPadding = 9;
String kTemplateBody = """
@ -39,44 +37,27 @@ payload = {{body}}
headers = {{headers}}
""";
String kTemplateFormHeaderContentType = '''
multipart/form-data; boundary={{boundary}}''';
int kHeadersPadding = 10;
String kTemplateRequest = """
response = requests.{{method}}(url
""";
final String kStringFormDataBody = r'''
final String kTemplateFormDataBody = r'''
def build_data_list(fields):
dataList = []
for field in fields:
name = field.get('name', '')
value = field.get('value', '')
type_ = field.get('type', 'text')
payload = MultipartEncoder({
{{formdata_payload}}
}{% if boundary != '' %},
boundary="{{boundary}}"
{% endif %})
dataList.append(encode('--{{boundary}}'))
if type_ == 'text':
dataList.append(encode(f'Content-Disposition: form-data; name="{name}"'))
dataList.append(encode('Content-Type: text/plain'))
dataList.append(encode(''))
dataList.append(encode(value))
elif type_ == 'file':
dataList.append(encode(f'Content-Disposition: form-data; name="{name}"; filename="{value}"'))
dataList.append(encode(f'Content-Type: {mimetypes.guess_type(value)[0] or "application/octet-stream"}'))
dataList.append(encode(''))
dataList.append(open(value, 'rb').read())
dataList.append(encode('--{{boundary}}--'))
dataList.append(encode(''))
return dataList
dataList = build_data_list({{fields_list}})
payload = b'\r\n'.join(dataList)
''';
String kTemplateFormDataRowText = r""" "{{name}}": "{{value}}",""";
String kTemplateFormDataRowFile =
r""" "{{name}}": ("{{filename}}", open("{{path}}", "rb")),""";
String kStringRequestParams = """, params=params""";
String kStringRequestBody = """, data=payload""";
@ -91,25 +72,26 @@ print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
String kStringFormDataContentType = "payload.content_type";
String refactorHeaderString(String headerString) {
return headerString.replaceAll(
'"$kStringFormDataContentType"', kStringFormDataContentType);
}
String? getCode(
RequestModel requestModel,
String defaultUriScheme,
) {
RequestModel requestModel, {
String? boundary,
}) {
try {
String result = "";
bool hasQuery = false;
bool hasHeaders = false;
bool hasBody = false;
bool hasJsonBody = false;
String uuid = getNewUuid();
String url = requestModel.url;
if (!url.contains("://") && url.isNotEmpty) {
url = "$defaultUriScheme://$url";
}
var rec = getValidRequestUri(
url,
requestModel.url,
requestModel.enabledRequestParams,
);
Uri? uri = rec.$1;
@ -117,7 +99,7 @@ print('Response Body:', response.text)
var templateStartUrl = jj.Template(kTemplateStart);
result += templateStartUrl.render({
"url": stripUriParams(uri),
'isFormDataRequest': requestModel.isFormDataRequest
'hasFormData': requestModel.hasFormData
});
if (uri.hasQuery) {
@ -126,77 +108,85 @@ print('Response Body:', response.text)
hasQuery = true;
var templateParams = jj.Template(kTemplateParams);
var paramsString = kEncoder.convert(params);
paramsString = padMultilineString(paramsString, kParamsPadding);
result += templateParams.render({"params": paramsString});
}
}
var method = requestModel.method;
var requestBody = requestModel.requestBody;
if (kMethodsWithBody.contains(method) && requestBody != null) {
var contentLength = utf8.encode(requestBody).length;
if (contentLength > 0) {
if (requestModel.requestBodyContentType == ContentType.json) {
hasJsonBody = true;
var templateBody = jj.Template(kTemplateJson);
result += templateBody.render({"body": requestBody});
} else if (!requestModel.isFormDataRequest) {
hasBody = true;
var templateBody = jj.Template(kTemplateBody);
result += templateBody.render({"body": requestBody});
if (requestModel.hasFormData) {
hasBody = true;
List<String> formdataPayload = [];
for (var item in requestModel.formDataList) {
if (item.type == FormDataType.text) {
formdataPayload.add(jj.Template(kTemplateFormDataRowText).render({
"name": item.name,
"value": item.value,
}));
}
if (item.type == FormDataType.file) {
formdataPayload.add(jj.Template(kTemplateFormDataRowFile).render({
"name": item.name,
"filename": getFilenameFromPath(item.value),
"path": item.value,
}));
}
}
var formDataBodyData = jj.Template(kTemplateFormDataBody);
result += formDataBodyData.render(
{
"formdata_payload": formdataPayload.join("\n"),
"boundary": boundary ?? '',
},
);
} else if (requestModel.hasJsonData) {
hasJsonBody = true;
var templateBody = jj.Template(kTemplateJson);
var pyDict = jsonToPyDict(requestModel.requestBody ?? "");
result += templateBody.render({"body": pyDict});
} else if (requestModel.hasTextData) {
hasBody = true;
var templateBody = jj.Template(kTemplateBody);
result += templateBody.render({"body": requestModel.requestBody});
}
var headersList = requestModel.enabledRequestHeaders;
if (headersList != null || hasBody) {
var headers = requestModel.enabledHeadersMap;
if (requestModel.isFormDataRequest) {
var formHeaderTemplate =
jj.Template(kTemplateFormHeaderContentType);
headers[HttpHeaders.contentTypeHeader] = formHeaderTemplate.render({
"boundary": uuid,
});
}
if (headers.isNotEmpty || hasBody) {
hasHeaders = true;
if (hasBody) {
if (hasBody) {
if (requestModel.hasFormData) {
headers[HttpHeaders.contentTypeHeader] =
kStringFormDataContentType;
} else {
headers[HttpHeaders.contentTypeHeader] =
requestModel.requestBodyContentType.header;
}
}
if (headers.isNotEmpty) {
hasHeaders = true;
var headersString = kEncoder.convert(headers);
headersString = padMultilineString(headersString, kHeadersPadding);
headersString = refactorHeaderString(headersString);
var templateHeaders = jj.Template(kTemplateHeaders);
result += templateHeaders.render({"headers": headersString});
}
}
if (requestModel.isFormDataRequest) {
var formDataBodyData = jj.Template(kStringFormDataBody);
result += formDataBodyData.render(
{
"fields_list": json.encode(requestModel.formDataMapList),
"boundary": uuid,
},
);
}
var templateRequest = jj.Template(kTemplateRequest);
result += templateRequest.render({
"method": method.name.toLowerCase(),
"method": requestModel.method.name.toLowerCase(),
});
if (hasQuery) {
result += kStringRequestParams;
}
if (hasBody || requestModel.isFormDataRequest) {
if (hasBody) {
result += kStringRequestBody;
}
if (hasJsonBody || requestModel.isFormDataRequest) {
if (hasJsonBody) {
result += kStringRequestJson;
}
if (hasHeaders || requestModel.isFormDataRequest) {
if (hasHeaders) {
result += kStringRequestHeaders;
}

View File

@ -8,6 +8,7 @@ import 'package:davi/davi.dart';
const kDiscordUrl = "https://bit.ly/heyfoss";
const kGitUrl = "https://github.com/foss42/apidash";
const kIssueUrl = "$kGitUrl/issues";
const kDefaultUri = "api.apidash.dev";
final kIsMacOS = !kIsWeb && Platform.isMacOS;
final kIsWindows = !kIsWeb && Platform.isWindows;
@ -283,6 +284,8 @@ enum CodegenLanguage {
const JsonEncoder kEncoder = JsonEncoder.withIndent(' ');
const LineSplitter kSplitter = LineSplitter();
const kHeaderContentType = "Content-Type";
const kTypeApplication = 'application';
// application
const kSubTypeJson = 'json';
@ -313,12 +316,15 @@ const kSubTypeSvg = 'svg+xml';
const kTypeAudio = 'audio';
const kTypeVideo = 'video';
const kTypeMultipart = "multipart";
const kSubTypeFormData = "form-data";
const kSubTypeDefaultViewOptions = 'all';
enum ContentType {
json("$kTypeApplication/$kSubTypeJson"),
text("$kTypeText/$kSubTypePlain"),
formdata("multipart/form-data");
formdata("$kTypeMultipart/$kSubTypeFormData");
const ContentType(this.header);
final String header;
@ -500,8 +506,7 @@ const kRaiseIssue =
const kCsvError =
"There seems to be an issue rendering this CSV. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
const kHintTextUrlCard =
"Enter API endpoint like api.apidash.dev/country/codes";
const kHintTextUrlCard = "Enter API endpoint like https://$kDefaultUri/";
const kLabelPlusNew = "+ New";
const kLabelSend = "Send";
const kLabelSending = "Sending..";

View File

@ -1,4 +1,5 @@
import 'dart:io';
import 'dart:convert';
import 'package:flutter/foundation.dart';
import '../utils/utils.dart'
show
@ -62,9 +63,27 @@ class RequestModel {
Map<String, String> get headersMap => rowsToMap(requestHeaders) ?? {};
Map<String, String> get paramsMap => rowsToMap(requestParams) ?? {};
bool get hasFormDataContentType =>
requestBodyContentType == ContentType.formdata;
bool get hasJsonContentType => requestBodyContentType == ContentType.json;
bool get hasTextContentType => requestBodyContentType == ContentType.text;
int get contentLength => utf8.encode(requestBody ?? "").length;
bool get hasJsonData =>
kMethodsWithBody.contains(method) &&
hasJsonContentType &&
contentLength > 0;
bool get hasTextData =>
kMethodsWithBody.contains(method) &&
hasTextContentType &&
contentLength > 0;
bool get hasFormData =>
kMethodsWithBody.contains(method) &&
hasFormDataContentType &&
(requestFormDataList ?? <FormDataModel>[]).isNotEmpty;
List<FormDataModel> get formDataList =>
requestFormDataList ?? <FormDataModel>[];
List<Map<String, dynamic>> get formDataMapList =>
rowsToFormDataMapList(requestFormDataList) ?? [];
bool get isFormDataRequest => requestBodyContentType == ContentType.formdata;
bool get hasContentTypeHeader => enabledHeadersMap.keys
.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);

View File

@ -3,7 +3,7 @@ import 'settings_providers.dart';
import 'ui_providers.dart';
import '../models/models.dart';
import '../services/services.dart' show hiveHandler, HiveHandler, request;
import '../utils/utils.dart' show uuid, collectionToHAR;
import '../utils/utils.dart' show getNewUuid, collectionToHAR;
import '../consts.dart';
import 'package:http/http.dart' as http;
@ -54,7 +54,7 @@ class CollectionStateNotifier
}
void add() {
final id = uuid.v1();
final id = getNewUuid();
final newRequestModel = RequestModel(
id: id,
);
@ -97,7 +97,7 @@ class CollectionStateNotifier
}
void duplicate(String id) {
final newId = uuid.v1();
final newId = getNewUuid();
var itemIds = ref.read(requestSequenceProvider);
int idx = itemIds.indexOf(id);
@ -173,8 +173,6 @@ class CollectionStateNotifier
(http.Response?, Duration?, String?)? responseRec = await request(
requestModel,
defaultUriScheme: defaultUriScheme,
isMultiPartRequest:
requestModel.requestBodyContentType == ContentType.formdata,
);
late final RequestModel newRequestModel;
if (responseRec.$1 == null) {
@ -215,7 +213,7 @@ class CollectionStateNotifier
bool loadData() {
var ids = hiveHandler.getIds();
if (ids == null || ids.length == 0) {
String newId = uuid.v1();
String newId = getNewUuid();
state = {
newId: RequestModel(
id: newId,

View File

@ -65,7 +65,7 @@ class SettingsPage extends ConsumerWidget {
hoverColor: kColorTransparent,
title: const Text('Default URI Scheme'),
subtitle: Text(
'api.apidash.dev${settings.defaultUriScheme}://api.apidash.dev'),
'$kDefaultUri${settings.defaultUriScheme}://$kDefaultUri'),
trailing: DropdownMenu(
onSelected: (value) {
ref

View File

@ -9,7 +9,6 @@ import 'package:apidash/consts.dart';
Future<(http.Response?, Duration?, String?)> request(
RequestModel requestModel, {
String defaultUriScheme = kDefaultUriScheme,
bool isMultiPartRequest = false,
}) async {
(Uri?, String?) uriRec = getValidRequestUri(
requestModel.url,
@ -22,44 +21,48 @@ Future<(http.Response?, Duration?, String?)> request(
http.Response response;
String? body;
try {
var requestBody = requestModel.requestBody;
if (kMethodsWithBody.contains(requestModel.method) &&
requestBody != null) {
var contentLength = utf8.encode(requestBody).length;
if (contentLength > 0) {
body = requestBody;
headers[HttpHeaders.contentLengthHeader] = contentLength.toString();
if (!requestModel.hasContentTypeHeader) {
headers[HttpHeaders.contentTypeHeader] =
requestModel.requestBodyContentType.header;
}
}
}
Stopwatch stopwatch = Stopwatch()..start();
if (isMultiPartRequest) {
var multiPartRequest = http.MultipartRequest(
requestModel.method.name.toUpperCase(),
requestUrl,
);
multiPartRequest.headers.addAll(headers);
for (FormDataModel formData
in (requestModel.requestFormDataList ?? [])) {
if (formData.type == FormDataType.text) {
multiPartRequest.fields.addAll({formData.name: formData.value});
} else {
multiPartRequest.files.add(
await http.MultipartFile.fromPath(
formData.name,
formData.value,
),
);
var isMultiPartRequest =
requestModel.requestBodyContentType == ContentType.formdata;
if (kMethodsWithBody.contains(requestModel.method)) {
var requestBody = requestModel.requestBody;
if (requestBody != null && !isMultiPartRequest) {
var contentLength = utf8.encode(requestBody).length;
if (contentLength > 0) {
body = requestBody;
headers[HttpHeaders.contentLengthHeader] = contentLength.toString();
if (!requestModel.hasContentTypeHeader) {
headers[HttpHeaders.contentTypeHeader] =
requestModel.requestBodyContentType.header;
}
}
}
http.StreamedResponse multiPartResponse = await multiPartRequest.send();
stopwatch.stop();
http.Response convertedMultiPartResponse =
await convertStreamedResponse(multiPartResponse);
return (convertedMultiPartResponse, stopwatch.elapsed, null);
if (isMultiPartRequest) {
var multiPartRequest = http.MultipartRequest(
requestModel.method.name.toUpperCase(),
requestUrl,
);
multiPartRequest.headers.addAll(headers);
for (var formData
in (requestModel.requestFormDataList ?? <FormDataModel>[])) {
if (formData.type == FormDataType.text) {
multiPartRequest.fields.addAll({formData.name: formData.value});
} else {
multiPartRequest.files.add(
await http.MultipartFile.fromPath(
formData.name,
formData.value,
),
);
}
}
http.StreamedResponse multiPartResponse =
await multiPartRequest.send();
stopwatch.stop();
http.Response convertedMultiPartResponse =
await convertStreamedResponse(multiPartResponse);
return (convertedMultiPartResponse, stopwatch.elapsed, null);
}
}
switch (requestModel.method) {
case HTTPVerb.get:

View File

@ -48,8 +48,13 @@ String getShortPath(String path) {
return path;
}
String getFilenameFromPath(String path) {
var f = p.split(path);
return f.last;
}
String getTempFileName() {
return uuid.v1();
return getNewUuid();
}
Future<FilePickerResult?> pickFile() async {

View File

@ -1,6 +1,10 @@
// http://www.softwareishard.com/blog/har-12-spec/
// https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md
import 'dart:convert';
import 'package:apidash/consts.dart';
import 'package:apidash/utils/utils.dart' show getValidRequestUri;
import 'package:apidash/utils/utils.dart'
show getValidRequestUri, getNewUuid, getFilenameFromPath;
import 'package:apidash/models/models.dart' show RequestModel;
import 'package:package_info_plus/package_info_plus.dart';
@ -75,6 +79,7 @@ Map<String, dynamic> requestModelToHARJsonRequest(
defaultUriScheme = kDefaultUriScheme,
bool exportMode = false,
bool useEnabled = false,
String? boundary,
}) {
Map<String, dynamic> json = {};
bool hasBody = false;
@ -110,21 +115,37 @@ Map<String, dynamic> requestModelToHARJsonRequest(
}
}
var method = requestModel.method;
var requestBody = requestModel.requestBody;
if (kMethodsWithBody.contains(method) &&
requestBody != null &&
!requestModel.isFormDataRequest) {
var contentLength = utf8.encode(requestBody).length;
if (contentLength > 0) {
hasBody = true;
json["postData"] = {};
json["postData"]["mimeType"] =
requestModel.requestBodyContentType.header;
json["postData"]["text"] = requestBody;
if (exportMode) {
json["postData"]["comment"] = "";
if (requestModel.hasJsonData || requestModel.hasTextData) {
hasBody = true;
json["postData"] = {};
json["postData"]["mimeType"] = requestModel.requestBodyContentType.header;
json["postData"]["text"] = requestModel.requestBody;
if (exportMode) {
json["postData"]["comment"] = "";
}
}
if (requestModel.hasFormData) {
boundary = boundary ?? getNewUuid();
hasBody = true;
json["postData"] = {};
json["postData"]["mimeType"] =
"${requestModel.requestBodyContentType.header}; boundary=$boundary";
json["postData"]["params"] = [];
for (var item in requestModel.formDataList) {
Map<String, String> d = exportMode ? {"comment": ""} : {};
if (item.type == FormDataType.text) {
d["name"] = item.name;
d["value"] = item.value;
}
if (item.type == FormDataType.file) {
d["name"] = item.name;
d["fileName"] = getFilenameFromPath(item.value);
}
json["postData"]["params"].add(d);
}
if (exportMode) {
json["postData"]["comment"] = "";
}
}
@ -137,8 +158,8 @@ Map<String, dynamic> requestModelToHARJsonRequest(
if (headers.isNotEmpty || hasBody) {
if (hasBody && !requestModel.hasContentTypeHeader) {
var m = {
"name": "Content-Type",
"value": requestModel.requestBodyContentType.header
"name": kHeaderContentType,
"value": json["postData"]["mimeType"]
};
if (exportMode) {
m["comment"] = "";
@ -154,14 +175,12 @@ Map<String, dynamic> requestModelToHARJsonRequest(
}
}
}
if (requestModel.isFormDataRequest) {
json["formData"] = requestModel.formDataMapList;
}
if (exportMode) {
json["comment"] = "";
json["cookies"] = [];
json["headersSize"] = -1;
json["bodySize"] = hasBody ? utf8.encode(requestBody!).length : 0;
json["bodySize"] =
hasBody ? utf8.encode(json["postData"]["text"] ?? "").length : 0;
}
}
return json;

View File

@ -1,64 +1,74 @@
import 'package:apidash/codegen/others/curl.dart';
import '../request_models.dart';
import 'package:apidash/codegen/codegen.dart';
import 'package:apidash/consts.dart';
import 'package:test/test.dart';
import '../request_models.dart';
void main() {
final curlCodeGen = cURLCodeGen();
final codeGen = Codegen();
group('GET Request', () {
test('GET 1', () {
const expectedCode = r"""curl --url 'https://api.apidash.dev'""";
expect(curlCodeGen.getCode(requestModelGet1, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelGet1, "https"),
expectedCode);
});
test('GET 2', () {
const expectedCode =
r"""curl --url 'https://api.apidash.dev/country/data?code=US'""";
expect(curlCodeGen.getCode(requestModelGet2, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelGet2, "https"),
expectedCode);
});
test('GET 3', () {
const expectedCode =
r"""curl --url 'https://api.apidash.dev/country/data?code=IND'""";
expect(curlCodeGen.getCode(requestModelGet3, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelGet3, "https"),
expectedCode);
});
test('GET 4', () {
const expectedCode =
r"""curl --url 'https://api.apidash.dev/humanize/social?num=8700000&digits=3&system=SS&add_space=true&trailing_zeros=true'""";
expect(curlCodeGen.getCode(requestModelGet4, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelGet4, "https"),
expectedCode);
});
test('GET 5', () {
const expectedCode =
r"""curl --url 'https://api.github.com/repos/foss42/apidash' \
--header 'User-Agent: Test Agent'""";
expect(curlCodeGen.getCode(requestModelGet5, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelGet5, "https"),
expectedCode);
});
test('GET 6', () {
const expectedCode =
r"""curl --url 'https://api.github.com/repos/foss42/apidash?raw=true' \
--header 'User-Agent: Test Agent'""";
expect(curlCodeGen.getCode(requestModelGet6, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelGet6, "https"),
expectedCode);
});
test('GET 7', () {
const expectedCode = r"""curl --url 'https://api.apidash.dev'""";
expect(curlCodeGen.getCode(requestModelGet7, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelGet7, "https"),
expectedCode);
});
test('GET 8', () {
const expectedCode =
r"""curl --url 'https://api.github.com/repos/foss42/apidash?raw=true' \
--header 'User-Agent: Test Agent'""";
expect(curlCodeGen.getCode(requestModelGet8, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelGet8, "https"),
expectedCode);
});
test('GET 9', () {
const expectedCode =
r"""curl --url 'https://api.apidash.dev/humanize/social?num=8700000&add_space=true'""";
expect(curlCodeGen.getCode(requestModelGet9, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelGet9, "https"),
expectedCode);
});
test('GET 10', () {
@ -66,7 +76,8 @@ void main() {
r"""curl --url 'https://api.apidash.dev/humanize/social' \
--header 'User-Agent: Test Agent'""";
expect(
curlCodeGen.getCode(
codeGen.getCode(
CodegenLanguage.curl,
requestModelGet10,
"https",
),
@ -77,103 +88,181 @@ void main() {
const expectedCode =
r"""curl --url 'https://api.apidash.dev/humanize/social?num=8700000&digits=3' \
--header 'User-Agent: Test Agent'""";
expect(curlCodeGen.getCode(requestModelGet11, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelGet11, "https"),
expectedCode);
});
test('GET 12', () {
const expectedCode =
r"""curl --url 'https://api.apidash.dev/humanize/social'""";
expect(curlCodeGen.getCode(requestModelGet12, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelGet12, "https"),
expectedCode);
});
});
group('HEAD Request', () {
test('HEAD 1', () {
const expectedCode = r"""curl --head --url 'https://api.apidash.dev'""";
expect(curlCodeGen.getCode(requestModelHead1, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelHead1, "https"),
expectedCode);
});
test('HEAD 2', () {
const expectedCode = r"""curl --head --url 'http://api.apidash.dev'""";
expect(curlCodeGen.getCode(requestModelHead2, "http"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelHead2, "http"),
expectedCode);
});
});
group('POST Request', () {
test('POST 1', () {
const expectedCode = r"""curl --request POST \
--url 'https://api.apidash.dev/case/lower' \
--url 'https://api.apidash.dev/case/lower' \
--header 'Content-Type: text/plain' \
--data '{
"text": "I LOVE Flutter"
}'""";
expect(curlCodeGen.getCode(requestModelPost1, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelPost1, "https"),
expectedCode);
});
test('POST 2', () {
const expectedCode = r"""curl --request POST \
--url 'https://api.apidash.dev/case/lower' \
--url 'https://api.apidash.dev/case/lower' \
--header 'Content-Type: application/json' \
--data '{
"text": "I LOVE Flutter"
"text": "I LOVE Flutter",
"flag": null,
"male": true,
"female": false,
"no": 1.2,
"arr": ["null", "true", "false", null]
}'""";
expect(curlCodeGen.getCode(requestModelPost2, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelPost2, "https"),
expectedCode);
});
test('POST 3', () {
const expectedCode = r"""curl --request POST \
--url 'https://api.apidash.dev/case/lower' \
--url 'https://api.apidash.dev/case/lower' \
--header 'Content-Type: application/json' \
--header 'User-Agent: Test Agent' \
--data '{
"text": "I LOVE Flutter"
}'""";
expect(curlCodeGen.getCode(requestModelPost3, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelPost3, "https"),
expectedCode);
});
test('POST 4', () {
const expectedCode = r"""curl --request POST \
--url 'https://api.apidash.dev/io/form' \
--form 'text=API' \
--form 'sep=|' \
--form 'times=3'""";
expect(codeGen.getCode(CodegenLanguage.curl, requestModelPost4, "https"),
expectedCode);
});
test('POST 5', () {
const expectedCode = r"""curl --request POST \
--url 'https://api.apidash.dev/io/form' \
--header 'User-Agent: Test Agent' \
--form 'text=API' \
--form 'sep=|' \
--form 'times=3'""";
expect(codeGen.getCode(CodegenLanguage.curl, requestModelPost5, "https"),
expectedCode);
});
test('POST 6', () {
const expectedCode = r"""curl --request POST \
--url 'https://api.apidash.dev/io/img' \
--form 'token=xyz' \
--form 'imfile=@/Documents/up/1.png'""";
expect(codeGen.getCode(CodegenLanguage.curl, requestModelPost6, "https"),
expectedCode);
});
test('POST 7', () {
const expectedCode = r"""curl --request POST \
--url 'https://api.apidash.dev/io/img' \
--form 'token=xyz' \
--form 'imfile=@/Documents/up/1.png'""";
expect(codeGen.getCode(CodegenLanguage.curl, requestModelPost7, "https"),
expectedCode);
});
test('POST 8', () {
const expectedCode = r"""curl --request POST \
--url 'https://api.apidash.dev/io/form?size=2&len=3' \
--form 'text=API' \
--form 'sep=|' \
--form 'times=3'""";
expect(codeGen.getCode(CodegenLanguage.curl, requestModelPost8, "https"),
expectedCode);
});
test('POST 9', () {
const expectedCode = r"""curl --request POST \
--url 'https://api.apidash.dev/io/img?size=2&len=3' \
--header 'User-Agent: Test Agent' \
--header 'Keep-Alive: true' \
--form 'token=xyz' \
--form 'imfile=@/Documents/up/1.png'""";
expect(codeGen.getCode(CodegenLanguage.curl, requestModelPost9, "https"),
expectedCode);
});
});
group('PUT Request', () {
test('PUT 1', () {
const expectedCode = r"""curl --request PUT \
--url 'https://reqres.in/api/users/2' \
--url 'https://reqres.in/api/users/2' \
--header 'Content-Type: application/json' \
--data '{
"name": "morpheus",
"job": "zion resident"
}'""";
expect(curlCodeGen.getCode(requestModelPut1, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelPut1, "https"),
expectedCode);
});
});
group('PATCH Request', () {
test('PATCH 1', () {
const expectedCode = r"""curl --request PATCH \
--url 'https://reqres.in/api/users/2' \
--url 'https://reqres.in/api/users/2' \
--header 'Content-Type: application/json' \
--data '{
"name": "marfeus",
"job": "accountant"
}'""";
expect(curlCodeGen.getCode(requestModelPatch1, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.curl, requestModelPatch1, "https"),
expectedCode);
});
});
group('DELETE Request', () {
test('DELETE 1', () {
const expectedCode = r"""curl --request DELETE \
--url 'https://reqres.in/api/users/2'""";
expect(curlCodeGen.getCode(requestModelDelete1, "https"), expectedCode);
--url 'https://reqres.in/api/users/2'""";
expect(
codeGen.getCode(CodegenLanguage.curl, requestModelDelete1, "https"),
expectedCode);
});
test('DELETE 2', () {
const expectedCode = r"""curl --request DELETE \
--url 'https://reqres.in/api/users/2' \
--url 'https://reqres.in/api/users/2' \
--header 'Content-Type: application/json' \
--data '{
"name": "marfeus",
"job": "accountant"
}'""";
expect(curlCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.curl, requestModelDelete2, "https"),
expectedCode);
});
});
}

View File

@ -1,10 +1,10 @@
import 'package:apidash/codegen/dart/dio.dart';
import 'package:apidash/codegen/codegen.dart';
import 'package:apidash/consts.dart';
import 'package:test/test.dart';
import '../request_models.dart';
void main() {
final dartDioCodeGen = DartDioCodeGen();
final codeGen = Codegen();
group('GET Request', () {
test('GET 1', () {
@ -25,7 +25,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelGet1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelGet1, "https"),
expectedCode);
});
test('GET 2', () {
@ -50,7 +52,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelGet2, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelGet2, "https"),
expectedCode);
});
test('GET 3', () {
@ -75,7 +79,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelGet3, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelGet3, "https"),
expectedCode);
});
test('GET 4', () {
@ -106,7 +112,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelGet4, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelGet4, "https"),
expectedCode);
});
test('GET 5', () {
@ -131,7 +139,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelGet5, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelGet5, "https"),
expectedCode);
});
test('GET 6', () {
@ -158,7 +168,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelGet6, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelGet6, "https"),
expectedCode);
});
test('GET 7', () {
@ -179,7 +191,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelGet7, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelGet7, "https"),
expectedCode);
});
test('GET 8', () {
@ -206,7 +220,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelGet8, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelGet8, "https"),
expectedCode);
});
test('GET 9', () {
@ -234,7 +250,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelGet9, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelGet9, "https"),
expectedCode);
});
test('GET 10', () {
@ -260,7 +278,8 @@ void main() async {
}
""";
expect(
dartDioCodeGen.getCode(
codeGen.getCode(
CodegenLanguage.dartDio,
requestModelGet10,
"https",
),
@ -294,7 +313,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelGet11, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelGet11, "https"),
expectedCode);
});
test('GET 12', () {
@ -315,7 +336,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelGet12, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelGet12, "https"),
expectedCode);
});
});
@ -338,7 +361,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelHead1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelHead1, "https"),
expectedCode);
});
test('HEAD 2', () {
@ -359,7 +384,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelHead2, "http"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelHead2, "http"),
expectedCode);
});
});
@ -388,7 +415,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelPost1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelPost1, "https"),
expectedCode);
});
test('POST 2', () {
@ -398,7 +427,12 @@ import 'dart:convert' as convert;
void main() async {
try {
final data = convert.json.decode(r'''{
"text": "I LOVE Flutter"
"text": "I LOVE Flutter",
"flag": null,
"male": true,
"female": false,
"no": 1.2,
"arr": ["null", "true", "false", null]
}''');
final response = await dio.Dio.post(
'https://api.apidash.dev/case/lower',
@ -416,7 +450,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelPost2, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelPost2, "https"),
expectedCode);
});
test('POST 3', () {
@ -446,7 +482,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelPost3, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelPost3, "https"),
expectedCode);
});
});
@ -477,7 +515,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelPut1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelPut1, "https"),
expectedCode);
});
});
@ -508,7 +548,9 @@ void main() async {
}
}
""";
expect(dartDioCodeGen.getCode(requestModelPatch1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartDio, requestModelPatch1, "https"),
expectedCode);
});
});
@ -532,7 +574,9 @@ void main() async {
}
""";
expect(
dartDioCodeGen.getCode(requestModelDelete1, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.dartDio, requestModelDelete1, "https"),
expectedCode);
});
test('DELETE 2', () {
@ -562,7 +606,9 @@ void main() async {
}
""";
expect(
dartDioCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.dartDio, requestModelDelete2, "https"),
expectedCode);
});
});
}

View File

@ -1,10 +1,10 @@
import 'package:apidash/codegen/dart/http.dart';
import 'package:apidash/codegen/codegen.dart';
import 'package:apidash/consts.dart';
import 'package:test/test.dart';
import '../request_models.dart';
void main() {
final dartHttpCodeGen = DartHttpCodeGen();
final codeGen = Codegen();
group('GET Request', () {
test('GET 1', () {
@ -25,7 +25,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelGet1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelGet1, "https"),
expectedCode);
});
test('GET 2', () {
@ -50,7 +52,9 @@ void main() async {
}
""";
expect(dartHttpCodeGen.getCode(requestModelGet2, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelGet2, "https"),
expectedCode);
});
test('GET 3', () {
@ -76,7 +80,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelGet3, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelGet3, "https"),
expectedCode);
});
test('GET 4', () {
@ -106,7 +112,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelGet4, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelGet4, "https"),
expectedCode);
});
test('GET 5', () {
@ -132,7 +140,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelGet5, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelGet5, "https"),
expectedCode);
});
test('GET 6', () {
@ -161,7 +171,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelGet6, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelGet6, "https"),
expectedCode);
});
test('GET 7', () {
@ -182,7 +194,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelGet7, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelGet7, "https"),
expectedCode);
});
test('GET 8', () {
@ -211,7 +225,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelGet8, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelGet8, "https"),
expectedCode);
});
test('GET 9', () {
@ -238,7 +254,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelGet9, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelGet9, "https"),
expectedCode);
});
test('GET 10', () {
@ -265,7 +283,8 @@ void main() async {
}
""";
expect(
dartHttpCodeGen.getCode(
codeGen.getCode(
CodegenLanguage.dartHttp,
requestModelGet10,
"https",
),
@ -301,7 +320,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelGet11, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelGet11, "https"),
expectedCode);
});
test('GET 12', () {
@ -322,7 +343,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelGet12, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelGet12, "https"),
expectedCode);
});
});
@ -345,7 +368,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelHead1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelHead1, "https"),
expectedCode);
});
test('HEAD 2', () {
@ -366,7 +391,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelHead2, "http"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelHead2, "http"),
expectedCode);
});
});
@ -399,7 +426,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelPost1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelPost1, "https"),
expectedCode);
});
test('POST 2', () {
@ -409,7 +438,12 @@ void main() async {
var uri = Uri.parse('https://api.apidash.dev/case/lower');
String body = r'''{
"text": "I LOVE Flutter"
"text": "I LOVE Flutter",
"flag": null,
"male": true,
"female": false,
"no": 1.2,
"arr": ["null", "true", "false", null]
}''';
var headers = {'content-type': 'application/json'};
@ -430,7 +464,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelPost2, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelPost2, "https"),
expectedCode);
});
test('POST 3', () {
@ -464,7 +500,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelPost3, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelPost3, "https"),
expectedCode);
});
});
@ -498,7 +536,9 @@ void main() async {
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelPut1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.dartHttp, requestModelPut1, "https"),
expectedCode);
});
});
@ -533,7 +573,9 @@ void main() async {
}
""";
expect(
dartHttpCodeGen.getCode(requestModelPatch1, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.dartHttp, requestModelPatch1, "https"),
expectedCode);
});
});
@ -557,7 +599,9 @@ void main() async {
}
""";
expect(
dartHttpCodeGen.getCode(requestModelDelete1, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.dartHttp, requestModelDelete1, "https"),
expectedCode);
});
test('DELETE 2', () {
@ -590,7 +634,9 @@ void main() async {
}
""";
expect(
dartHttpCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.dartHttp, requestModelDelete2, "https"),
expectedCode);
});
});
}

View File

@ -1,9 +1,10 @@
import 'package:apidash/codegen/others/har.dart';
import '../request_models.dart';
import 'package:apidash/codegen/codegen.dart';
import 'package:apidash/consts.dart';
import 'package:test/test.dart';
import '../request_models.dart';
void main() {
final harCodeGen = HARCodeGen();
final codeGen = Codegen();
group('GET Request', () {
test('GET 1', () {
@ -14,7 +15,8 @@ void main() {
"queryString": [],
"headers": []
}""";
expect(harCodeGen.getCode(requestModelGet1, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelGet1, "https"),
expectedCode);
});
test('GET 2', () {
@ -30,7 +32,8 @@ void main() {
],
"headers": []
}""";
expect(harCodeGen.getCode(requestModelGet2, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelGet2, "https"),
expectedCode);
});
test('GET 3', () {
@ -46,7 +49,8 @@ void main() {
],
"headers": []
}""";
expect(harCodeGen.getCode(requestModelGet3, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelGet3, "https"),
expectedCode);
});
test('GET 4', () {
@ -78,7 +82,8 @@ void main() {
],
"headers": []
}""";
expect(harCodeGen.getCode(requestModelGet4, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelGet4, "https"),
expectedCode);
});
test('GET 5', () {
@ -94,7 +99,8 @@ void main() {
}
]
}""";
expect(harCodeGen.getCode(requestModelGet5, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelGet5, "https"),
expectedCode);
});
test('GET 6', () {
@ -115,7 +121,8 @@ void main() {
}
]
}""";
expect(harCodeGen.getCode(requestModelGet6, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelGet6, "https"),
expectedCode);
});
test('GET 7', () {
@ -126,7 +133,8 @@ void main() {
"queryString": [],
"headers": []
}""";
expect(harCodeGen.getCode(requestModelGet7, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelGet7, "https"),
expectedCode);
});
test('GET 8', () {
@ -147,7 +155,8 @@ void main() {
}
]
}""";
expect(harCodeGen.getCode(requestModelGet8, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelGet8, "https"),
expectedCode);
});
test('GET 9', () {
@ -167,7 +176,8 @@ void main() {
],
"headers": []
}""";
expect(harCodeGen.getCode(requestModelGet9, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelGet9, "https"),
expectedCode);
});
test('GET 10', () {
@ -184,7 +194,8 @@ void main() {
]
}""";
expect(
harCodeGen.getCode(
codeGen.getCode(
CodegenLanguage.har,
requestModelGet10,
"https",
),
@ -213,7 +224,8 @@ void main() {
}
]
}""";
expect(harCodeGen.getCode(requestModelGet11, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelGet11, "https"),
expectedCode);
});
test('GET 12', () {
@ -224,7 +236,8 @@ void main() {
"queryString": [],
"headers": []
}""";
expect(harCodeGen.getCode(requestModelGet12, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelGet12, "https"),
expectedCode);
});
});
@ -237,7 +250,8 @@ void main() {
"queryString": [],
"headers": []
}""";
expect(harCodeGen.getCode(requestModelHead1, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelHead1, "https"),
expectedCode);
});
test('HEAD 2', () {
@ -248,7 +262,8 @@ void main() {
"queryString": [],
"headers": []
}""";
expect(harCodeGen.getCode(requestModelHead2, "http"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelHead2, "http"),
expectedCode);
});
});
@ -270,7 +285,8 @@ void main() {
"text": "{\n\"text\": \"I LOVE Flutter\"\n}"
}
}""";
expect(harCodeGen.getCode(requestModelPost1, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelPost1, "https"),
expectedCode);
});
test('POST 2', () {
@ -287,10 +303,11 @@ void main() {
],
"postData": {
"mimeType": "application/json",
"text": "{\n\"text\": \"I LOVE Flutter\"\n}"
"text": "{\n\"text\": \"I LOVE Flutter\",\n\"flag\": null,\n\"male\": true,\n\"female\": false,\n\"no\": 1.2,\n\"arr\": [\"null\", \"true\", \"false\", null]\n}"
}
}""";
expect(harCodeGen.getCode(requestModelPost2, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelPost2, "https"),
expectedCode);
});
test('POST 3', () {
@ -314,7 +331,242 @@ void main() {
"text": "{\n\"text\": \"I LOVE Flutter\"\n}"
}
}""";
expect(harCodeGen.getCode(requestModelPost3, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelPost3, "https"),
expectedCode);
});
test('POST 4', () {
const expectedCode = r"""{
"method": "POST",
"url": "https://api.apidash.dev/io/form",
"httpVersion": "HTTP/1.1",
"queryString": [],
"headers": [
{
"name": "Content-Type",
"value": "multipart/form-data; boundary=d43e2510-a25e-1f08-b0a5-591aeb704467"
}
],
"postData": {
"mimeType": "multipart/form-data; boundary=d43e2510-a25e-1f08-b0a5-591aeb704467",
"params": [
{
"name": "text",
"value": "API"
},
{
"name": "sep",
"value": "|"
},
{
"name": "times",
"value": "3"
}
]
}
}""";
expect(
codeGen.getCode(CodegenLanguage.har, requestModelPost4, "https",
boundary: "d43e2510-a25e-1f08-b0a5-591aeb704467"),
expectedCode);
});
test('POST 5', () {
const expectedCode = r"""{
"method": "POST",
"url": "https://api.apidash.dev/io/form",
"httpVersion": "HTTP/1.1",
"queryString": [],
"headers": [
{
"name": "Content-Type",
"value": "multipart/form-data; boundary=ce268b20-a3e6-1f08-b0a5-591aeb704467"
},
{
"name": "User-Agent",
"value": "Test Agent"
}
],
"postData": {
"mimeType": "multipart/form-data; boundary=ce268b20-a3e6-1f08-b0a5-591aeb704467",
"params": [
{
"name": "text",
"value": "API"
},
{
"name": "sep",
"value": "|"
},
{
"name": "times",
"value": "3"
}
]
}
}""";
expect(
codeGen.getCode(CodegenLanguage.har, requestModelPost5, "https",
boundary: "ce268b20-a3e6-1f08-b0a5-591aeb704467"),
expectedCode);
});
test('POST 6', () {
const expectedCode = r"""{
"method": "POST",
"url": "https://api.apidash.dev/io/img",
"httpVersion": "HTTP/1.1",
"queryString": [],
"headers": [
{
"name": "Content-Type",
"value": "multipart/form-data; boundary=c90d21a0-a44d-1f08-b0a5-591aeb704467"
}
],
"postData": {
"mimeType": "multipart/form-data; boundary=c90d21a0-a44d-1f08-b0a5-591aeb704467",
"params": [
{
"name": "token",
"value": "xyz"
},
{
"name": "imfile",
"fileName": "1.png"
}
]
}
}""";
expect(
codeGen.getCode(CodegenLanguage.har, requestModelPost6, "https",
boundary: "c90d21a0-a44d-1f08-b0a5-591aeb704467"),
expectedCode);
});
test('POST 7', () {
const expectedCode = r"""{
"method": "POST",
"url": "https://api.apidash.dev/io/img",
"httpVersion": "HTTP/1.1",
"queryString": [],
"headers": [
{
"name": "Content-Type",
"value": "multipart/form-data; boundary=4ac86770-a4dc-1f08-b0a5-591aeb704467"
}
],
"postData": {
"mimeType": "multipart/form-data; boundary=4ac86770-a4dc-1f08-b0a5-591aeb704467",
"params": [
{
"name": "token",
"value": "xyz"
},
{
"name": "imfile",
"fileName": "1.png"
}
]
}
}""";
expect(
codeGen.getCode(CodegenLanguage.har, requestModelPost7, "https",
boundary: "4ac86770-a4dc-1f08-b0a5-591aeb704467"),
expectedCode);
});
test('POST 8', () {
const expectedCode = r"""{
"method": "POST",
"url": "https://api.apidash.dev/io/form?size=2&len=3",
"httpVersion": "HTTP/1.1",
"queryString": [
{
"name": "size",
"value": "2"
},
{
"name": "len",
"value": "3"
}
],
"headers": [
{
"name": "Content-Type",
"value": "multipart/form-data; boundary=78403a20-a54a-1f08-b0a5-591aeb704467"
}
],
"postData": {
"mimeType": "multipart/form-data; boundary=78403a20-a54a-1f08-b0a5-591aeb704467",
"params": [
{
"name": "text",
"value": "API"
},
{
"name": "sep",
"value": "|"
},
{
"name": "times",
"value": "3"
}
]
}
}""";
expect(
codeGen.getCode(CodegenLanguage.har, requestModelPost8, "https",
boundary: "78403a20-a54a-1f08-b0a5-591aeb704467"),
expectedCode);
});
test('POST 9', () {
const expectedCode = r"""{
"method": "POST",
"url": "https://api.apidash.dev/io/img?size=2&len=3",
"httpVersion": "HTTP/1.1",
"queryString": [
{
"name": "size",
"value": "2"
},
{
"name": "len",
"value": "3"
}
],
"headers": [
{
"name": "Content-Type",
"value": "multipart/form-data; boundary=2d9cd390-a593-1f08-b0a5-591aeb704467"
},
{
"name": "User-Agent",
"value": "Test Agent"
},
{
"name": "Keep-Alive",
"value": "true"
}
],
"postData": {
"mimeType": "multipart/form-data; boundary=2d9cd390-a593-1f08-b0a5-591aeb704467",
"params": [
{
"name": "token",
"value": "xyz"
},
{
"name": "imfile",
"fileName": "1.png"
}
]
}
}""";
expect(
codeGen.getCode(CodegenLanguage.har, requestModelPost9, "https",
boundary: "2d9cd390-a593-1f08-b0a5-591aeb704467"),
expectedCode);
});
});
@ -336,7 +588,8 @@ void main() {
"text": "{\n\"name\": \"morpheus\",\n\"job\": \"zion resident\"\n}"
}
}""";
expect(harCodeGen.getCode(requestModelPut1, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelPut1, "https"),
expectedCode);
});
});
@ -358,7 +611,8 @@ void main() {
"text": "{\n\"name\": \"marfeus\",\n\"job\": \"accountant\"\n}"
}
}""";
expect(harCodeGen.getCode(requestModelPatch1, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelPatch1, "https"),
expectedCode);
});
});
@ -371,7 +625,8 @@ void main() {
"queryString": [],
"headers": []
}""";
expect(harCodeGen.getCode(requestModelDelete1, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelDelete1, "https"),
expectedCode);
});
test('DELETE 2', () {
@ -391,7 +646,8 @@ void main() {
"text": "{\n\"name\": \"marfeus\",\n\"job\": \"accountant\"\n}"
}
}""";
expect(harCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
expect(codeGen.getCode(CodegenLanguage.har, requestModelDelete2, "https"),
expectedCode);
});
});
}

View File

@ -1,9 +1,10 @@
import 'package:apidash/codegen/js/axios.dart';
import '../request_models.dart';
import 'package:apidash/codegen/codegen.dart';
import 'package:apidash/consts.dart';
import 'package:test/test.dart';
import '../request_models.dart';
void main() {
final axiosCodeGen = AxiosCodeGen();
final codeGen = Codegen();
group('GET Request', () {
test('GET 1', () {
@ -24,7 +25,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelGet1, "https"),
expectedCode);
});
test('GET 2', () {
@ -48,7 +51,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet2, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelGet2, "https"),
expectedCode);
});
test('GET 3', () {
@ -72,7 +77,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet3, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelGet3, "https"),
expectedCode);
});
test('GET 4', () {
@ -100,7 +107,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet4, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelGet4, "https"),
expectedCode);
});
test('GET 5', () {
@ -124,7 +133,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet5, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelGet5, "https"),
expectedCode);
});
test('GET 6', () {
@ -151,7 +162,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet6, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelGet6, "https"),
expectedCode);
});
test('GET 7', () {
@ -172,7 +185,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet7, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelGet7, "https"),
expectedCode);
});
test('GET 8', () {
@ -199,7 +214,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet8, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelGet8, "https"),
expectedCode);
});
test('GET 9', () {
@ -224,7 +241,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet9, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelGet9, "https"),
expectedCode);
});
test('GET 10', () {
@ -249,7 +268,8 @@ axios(config)
});
""";
expect(
axiosCodeGen.getCode(
codeGen.getCode(
CodegenLanguage.jsAxios,
requestModelGet10,
"https",
),
@ -281,7 +301,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet11, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelGet11, "https"),
expectedCode);
});
test('GET 12', () {
@ -302,7 +324,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet12, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelGet12, "https"),
expectedCode);
});
});
@ -325,7 +349,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelHead1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelHead1, "https"),
expectedCode);
});
test('HEAD 2', () {
@ -346,7 +372,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelHead2, "http"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelHead2, "http"),
expectedCode);
});
});
@ -373,7 +401,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelPost1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelPost1, "https"),
expectedCode);
});
test('POST 2', () {
@ -383,7 +413,7 @@ axios(config)
headers: {
"Content-Type": "application/json"
},
data: "{\n\"text\": \"I LOVE Flutter\"\n}"
data: "{\n\"text\": \"I LOVE Flutter\",\n\"flag\": null,\n\"male\": true,\n\"female\": false,\n\"no\": 1.2,\n\"arr\": [\"null\", \"true\", \"false\", null]\n}"
};
axios(config)
@ -398,7 +428,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelPost2, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelPost2, "https"),
expectedCode);
});
test('POST 3', () {
@ -424,7 +456,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelPost3, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelPost3, "https"),
expectedCode);
});
});
@ -451,7 +485,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelPut1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelPut1, "https"),
expectedCode);
});
});
@ -478,7 +514,9 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelPatch1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsAxios, requestModelPatch1, "https"),
expectedCode);
});
});
@ -501,7 +539,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelDelete1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.jsAxios, requestModelDelete1, "https"),
expectedCode);
});
test('DELETE 2', () {
@ -526,7 +567,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.jsAxios, requestModelDelete2, "https"),
expectedCode);
});
});
}

View File

@ -1,9 +1,10 @@
import 'package:apidash/codegen/js/fetch.dart';
import '../request_models.dart';
import 'package:apidash/codegen/codegen.dart';
import 'package:apidash/consts.dart';
import 'package:test/test.dart';
import '../request_models.dart';
void main() {
final fetchCodeGen = FetchCodeGen();
final codeGen = Codegen();
group('GET Request', () {
test('GET 1', () {
@ -28,7 +29,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelGet1, "https"),
expectedCode);
});
test('GET 2', () {
@ -54,7 +57,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet2, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelGet2, "https"),
expectedCode);
});
test('GET 3', () {
@ -80,7 +85,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet3, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelGet3, "https"),
expectedCode);
});
test('GET 4', () {
@ -106,7 +113,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet4, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelGet4, "https"),
expectedCode);
});
test('GET 5', () {
@ -135,7 +144,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet5, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelGet5, "https"),
expectedCode);
});
test('GET 6', () {
@ -164,7 +175,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet6, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelGet6, "https"),
expectedCode);
});
test('GET 7', () {
@ -189,7 +202,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet7, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelGet7, "https"),
expectedCode);
});
test('GET 8', () {
@ -218,7 +233,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet8, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelGet8, "https"),
expectedCode);
});
test('GET 9', () {
@ -244,7 +261,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet9, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelGet9, "https"),
expectedCode);
});
test('GET 10', () {
@ -274,7 +293,8 @@ fetch(url, options)
});
""";
expect(
fetchCodeGen.getCode(
codeGen.getCode(
CodegenLanguage.jsFetch,
requestModelGet10,
"https",
),
@ -307,7 +327,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet11, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelGet11, "https"),
expectedCode);
});
test('GET 12', () {
@ -333,7 +355,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet12, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelGet12, "https"),
expectedCode);
});
});
@ -360,7 +384,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelHead1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelHead1, "https"),
expectedCode);
});
test('HEAD 2', () {
@ -385,7 +411,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelHead2, "http"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelHead2, "http"),
expectedCode);
});
});
@ -417,7 +445,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelPost1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelPost1, "https"),
expectedCode);
});
test('POST 2', () {
@ -429,7 +459,7 @@ let options = {
"Content-Type": "application/json"
},
body:
"{\n\"text\": \"I LOVE Flutter\"\n}"
"{\n\"text\": \"I LOVE Flutter\",\n\"flag\": null,\n\"male\": true,\n\"female\": false,\n\"no\": 1.2,\n\"arr\": [\"null\", \"true\", \"false\", null]\n}"
};
let status;
@ -447,7 +477,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelPost2, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelPost2, "https"),
expectedCode);
});
test('POST 3', () {
@ -478,7 +510,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelPost3, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelPost3, "https"),
expectedCode);
});
});
@ -510,7 +544,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelPut1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelPut1, "https"),
expectedCode);
});
});
@ -542,7 +578,9 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelPatch1, "https"), expectedCode);
expect(
codeGen.getCode(CodegenLanguage.jsFetch, requestModelPatch1, "https"),
expectedCode);
});
});
@ -569,7 +607,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelDelete1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.jsFetch, requestModelDelete1, "https"),
expectedCode);
});
test('DELETE 2', () {
@ -599,7 +640,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.jsFetch, requestModelDelete2, "https"),
expectedCode);
});
});
}

View File

@ -1,9 +1,10 @@
import 'package:apidash/codegen/kotlin/okhttp.dart';
import 'package:apidash/codegen/codegen.dart';
import 'package:apidash/consts.dart';
import 'package:test/test.dart';
import '../request_models.dart';
void main() {
final kotlinOkHttpCodeGen = KotlinOkHttpCodeGen();
final codeGen = Codegen();
group('GET Request', () {
test('GET 1', () {
@ -27,7 +28,9 @@ fun main() {
}
""";
expect(
kotlinOkHttpCodeGen.getCode(requestModelGet1, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelGet1, "https"),
expectedCode);
});
test('GET 2', () {
@ -54,7 +57,9 @@ fun main() {
}
""";
expect(
kotlinOkHttpCodeGen.getCode(requestModelGet2, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelGet2, "https"),
expectedCode);
});
test('GET 3', () {
@ -81,7 +86,9 @@ fun main() {
}
""";
expect(
kotlinOkHttpCodeGen.getCode(requestModelGet3, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelGet3, "https"),
expectedCode);
});
test('GET 4', () {
@ -112,7 +119,9 @@ fun main() {
}
""";
expect(
kotlinOkHttpCodeGen.getCode(requestModelGet4, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelGet4, "https"),
expectedCode);
});
test('GET 5', () {
@ -137,7 +146,9 @@ fun main() {
}
""";
expect(
kotlinOkHttpCodeGen.getCode(requestModelGet5, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelGet5, "https"),
expectedCode);
});
test('GET 6', () {
@ -165,7 +176,9 @@ fun main() {
}
""";
expect(
kotlinOkHttpCodeGen.getCode(requestModelGet6, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelGet6, "https"),
expectedCode);
});
test('GET 7', () {
@ -189,7 +202,9 @@ fun main() {
}
""";
expect(
kotlinOkHttpCodeGen.getCode(requestModelGet7, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelGet7, "https"),
expectedCode);
});
test('GET 8', () {
@ -217,7 +232,9 @@ fun main() {
}
""";
expect(
kotlinOkHttpCodeGen.getCode(requestModelGet8, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelGet8, "https"),
expectedCode);
});
test('GET 9', () {
@ -245,7 +262,9 @@ fun main() {
}
""";
expect(
kotlinOkHttpCodeGen.getCode(requestModelGet9, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelGet9, "https"),
expectedCode);
});
test('GET 10', () {
@ -270,7 +289,8 @@ fun main() {
}
""";
expect(
kotlinOkHttpCodeGen.getCode(
codeGen.getCode(
CodegenLanguage.kotlinOkHttp,
requestModelGet10,
"https",
),
@ -302,7 +322,9 @@ fun main() {
println(response.body?.string())
}
""";
expect(kotlinOkHttpCodeGen.getCode(requestModelGet11, "https"),
expect(
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelGet11, "https"),
expectedCode);
});
@ -326,7 +348,9 @@ fun main() {
println(response.body?.string())
}
""";
expect(kotlinOkHttpCodeGen.getCode(requestModelGet12, "https"),
expect(
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelGet12, "https"),
expectedCode);
});
});
@ -352,7 +376,9 @@ fun main() {
println(response.body?.string())
}
""";
expect(kotlinOkHttpCodeGen.getCode(requestModelHead1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelHead1, "https"),
expectedCode);
});
@ -377,7 +403,9 @@ fun main() {
}
""";
expect(
kotlinOkHttpCodeGen.getCode(requestModelHead2, "http"), expectedCode);
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelHead2, "http"),
expectedCode);
});
});
@ -410,7 +438,9 @@ fun main() {
println(response.body?.string())
}
''';
expect(kotlinOkHttpCodeGen.getCode(requestModelPost1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelPost1, "https"),
expectedCode);
});
@ -428,7 +458,12 @@ fun main() {
val mediaType = "application/json".toMediaType()
val body = """{
"text": "I LOVE Flutter"
"text": "I LOVE Flutter",
"flag": null,
"male": true,
"female": false,
"no": 1.2,
"arr": ["null", "true", "false", null]
}""".toRequestBody(mediaType)
val request = Request.Builder()
@ -442,7 +477,9 @@ fun main() {
println(response.body?.string())
}
''';
expect(kotlinOkHttpCodeGen.getCode(requestModelPost2, "https"),
expect(
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelPost2, "https"),
expectedCode);
});
@ -475,7 +512,9 @@ fun main() {
println(response.body?.string())
}
''';
expect(kotlinOkHttpCodeGen.getCode(requestModelPost3, "https"),
expect(
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelPost3, "https"),
expectedCode);
});
@ -504,7 +543,9 @@ fun main() {
println(response.body?.string())
}
''';
expect(kotlinOkHttpCodeGen.getCode(requestModelPost5, "https"),
expect(
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelPost5, "https"),
expectedCode);
});
});
@ -540,7 +581,9 @@ fun main() {
}
''';
expect(
kotlinOkHttpCodeGen.getCode(requestModelPut1, "https"), expectedCode);
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelPut1, "https"),
expectedCode);
});
});
@ -574,7 +617,9 @@ fun main() {
println(response.body?.string())
}
''';
expect(kotlinOkHttpCodeGen.getCode(requestModelPatch1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelPatch1, "https"),
expectedCode);
});
});
@ -600,7 +645,9 @@ fun main() {
println(response.body?.string())
}
""";
expect(kotlinOkHttpCodeGen.getCode(requestModelDelete1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelDelete1, "https"),
expectedCode);
});
@ -633,7 +680,9 @@ fun main() {
println(response.body?.string())
}
''';
expect(kotlinOkHttpCodeGen.getCode(requestModelDelete2, "https"),
expect(
codeGen.getCode(
CodegenLanguage.kotlinOkHttp, requestModelDelete2, "https"),
expectedCode);
});
});

View File

@ -1,9 +1,10 @@
import 'package:apidash/codegen/js/axios.dart';
import '../request_models.dart';
import 'package:apidash/codegen/codegen.dart';
import 'package:apidash/consts.dart';
import 'package:test/test.dart';
import '../request_models.dart';
void main() {
final axiosCodeGen = AxiosCodeGen(isNodeJs: true);
final codeGen = Codegen();
group('GET Request', () {
test('GET 1', () {
@ -26,7 +27,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelGet1, "https"),
expectedCode);
});
test('GET 2', () {
@ -52,7 +56,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet2, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelGet2, "https"),
expectedCode);
});
test('GET 3', () {
@ -78,7 +85,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet3, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelGet3, "https"),
expectedCode);
});
test('GET 4', () {
@ -108,7 +118,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet4, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelGet4, "https"),
expectedCode);
});
test('GET 5', () {
@ -134,7 +147,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet5, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelGet5, "https"),
expectedCode);
});
test('GET 6', () {
@ -163,7 +179,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet6, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelGet6, "https"),
expectedCode);
});
test('GET 7', () {
@ -186,7 +205,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet7, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelGet7, "https"),
expectedCode);
});
test('GET 8', () {
@ -215,7 +237,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet8, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelGet8, "https"),
expectedCode);
});
test('GET 9', () {
@ -242,7 +267,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet9, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelGet9, "https"),
expectedCode);
});
test('GET 10', () {
@ -269,7 +297,8 @@ axios(config)
});
""";
expect(
axiosCodeGen.getCode(
codeGen.getCode(
CodegenLanguage.nodejsAxios,
requestModelGet10,
"https",
),
@ -303,7 +332,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet11, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelGet11, "https"),
expectedCode);
});
test('GET 12', () {
@ -326,7 +358,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelGet12, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelGet12, "https"),
expectedCode);
});
});
@ -351,7 +386,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelHead1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelHead1, "https"),
expectedCode);
});
test('HEAD 2', () {
@ -374,7 +412,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelHead2, "http"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelHead2, "http"),
expectedCode);
});
});
@ -403,7 +444,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelPost1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelPost1, "https"),
expectedCode);
});
test('POST 2', () {
@ -415,7 +459,7 @@ let config = {
headers: {
"Content-Type": "application/json"
},
data: "{\n\"text\": \"I LOVE Flutter\"\n}"
data: "{\n\"text\": \"I LOVE Flutter\",\n\"flag\": null,\n\"male\": true,\n\"female\": false,\n\"no\": 1.2,\n\"arr\": [\"null\", \"true\", \"false\", null]\n}"
};
axios(config)
@ -430,7 +474,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelPost2, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelPost2, "https"),
expectedCode);
});
test('POST 3', () {
@ -458,7 +505,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelPost3, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelPost3, "https"),
expectedCode);
});
});
@ -487,7 +537,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelPut1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelPut1, "https"),
expectedCode);
});
});
@ -516,7 +569,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelPatch1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelPatch1, "https"),
expectedCode);
});
});
@ -541,7 +597,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelDelete1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelDelete1, "https"),
expectedCode);
});
test('DELETE 2', () {
@ -568,7 +627,10 @@ axios(config)
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsAxios, requestModelDelete2, "https"),
expectedCode);
});
});
}

View File

@ -1,9 +1,10 @@
import 'package:apidash/codegen/js/fetch.dart';
import '../request_models.dart';
import 'package:apidash/codegen/codegen.dart';
import 'package:apidash/consts.dart';
import 'package:test/test.dart';
import '../request_models.dart';
void main() {
final fetchCodeGen = FetchCodeGen(isNodeJs: true);
final codeGen = Codegen();
group('GET Request', () {
test('GET 1', () {
@ -30,7 +31,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelGet1, "https"),
expectedCode);
});
test('GET 2', () {
@ -57,7 +61,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet2, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelGet2, "https"),
expectedCode);
});
test('GET 3', () {
@ -84,7 +91,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet3, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelGet3, "https"),
expectedCode);
});
test('GET 4', () {
@ -111,7 +121,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet4, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelGet4, "https"),
expectedCode);
});
test('GET 5', () {
@ -141,7 +154,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet5, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelGet5, "https"),
expectedCode);
});
test('GET 6', () {
@ -171,7 +187,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet6, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelGet6, "https"),
expectedCode);
});
test('GET 7', () {
@ -198,7 +217,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet7, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelGet7, "https"),
expectedCode);
});
test('GET 8', () {
@ -228,7 +250,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet8, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelGet8, "https"),
expectedCode);
});
test('GET 9', () {
@ -255,7 +280,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet9, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelGet9, "https"),
expectedCode);
});
test('GET 10', () {
@ -286,7 +314,8 @@ fetch(url, options)
});
""";
expect(
fetchCodeGen.getCode(
codeGen.getCode(
CodegenLanguage.nodejsFetch,
requestModelGet10,
"https",
),
@ -320,7 +349,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet11, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelGet11, "https"),
expectedCode);
});
test('GET 12', () {
@ -347,7 +379,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelGet12, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelGet12, "https"),
expectedCode);
});
});
@ -376,7 +411,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelHead1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelHead1, "https"),
expectedCode);
});
test('HEAD 2', () {
@ -403,7 +441,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelHead2, "http"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelHead2, "http"),
expectedCode);
});
});
@ -437,7 +478,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelPost1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelPost1, "https"),
expectedCode);
});
test('POST 2', () {
@ -451,7 +495,7 @@ let options = {
"Content-Type": "application/json"
},
body:
"{\n\"text\": \"I LOVE Flutter\"\n}"
"{\n\"text\": \"I LOVE Flutter\",\n\"flag\": null,\n\"male\": true,\n\"female\": false,\n\"no\": 1.2,\n\"arr\": [\"null\", \"true\", \"false\", null]\n}"
};
let status;
@ -469,7 +513,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelPost2, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelPost2, "https"),
expectedCode);
});
test('POST 3', () {
@ -502,7 +549,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelPost3, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelPost3, "https"),
expectedCode);
});
});
@ -536,7 +586,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelPut1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelPut1, "https"),
expectedCode);
});
});
@ -570,7 +623,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelPatch1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelPatch1, "https"),
expectedCode);
});
});
@ -599,7 +655,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelDelete1, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelDelete1, "https"),
expectedCode);
});
test('DELETE 2', () {
@ -631,7 +690,10 @@ fetch(url, options)
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
expect(
codeGen.getCode(
CodegenLanguage.nodejsFetch, requestModelDelete2, "https"),
expectedCode);
});
});
}

View File

@ -1,9 +1,10 @@
import 'package:apidash/codegen/python/http_client.dart';
import '../request_models.dart';
import 'package:apidash/codegen/codegen.dart';
import 'package:apidash/consts.dart';
import 'package:test/test.dart';
import '../request_models.dart';
void main() {
final pythonHttpClientCodeGen = PythonHttpClientCodeGen();
final codeGen = Codegen();
group('GET Request', () {
test('GET 1', () {
@ -17,7 +18,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelGet1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelGet1, "https"),
expectedCode);
});
@ -38,7 +41,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelGet2, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelGet2, "https"),
expectedCode);
});
@ -59,7 +64,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelGet3, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelGet3, "https"),
expectedCode);
});
@ -84,7 +91,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelGet4, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelGet4, "https"),
expectedCode);
});
@ -104,7 +113,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelGet5, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelGet5, "https"),
expectedCode);
});
@ -130,7 +141,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelGet6, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelGet6, "https"),
expectedCode);
});
@ -145,7 +158,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelGet7, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelGet7, "https"),
expectedCode);
});
@ -171,7 +186,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelGet8, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelGet8, "https"),
expectedCode);
});
@ -193,7 +210,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelGet9, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelGet9, "https"),
expectedCode);
});
@ -214,7 +233,8 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(
pythonHttpClientCodeGen.getCode(
codeGen.getCode(
CodegenLanguage.pythonHttpClient,
requestModelGet10,
"https",
),
@ -244,7 +264,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelGet11, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelGet11, "https"),
expectedCode);
});
@ -259,7 +281,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelGet12, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelGet12, "https"),
expectedCode);
});
});
@ -276,7 +300,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelHead1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelHead1, "https"),
expectedCode);
});
@ -291,7 +317,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelHead2, "http"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelHead2, "http"),
expectedCode);
});
});
@ -318,7 +346,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelPost1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelPost1, "https"),
expectedCode);
});
@ -326,7 +356,12 @@ print(data.decode("utf-8"))
const expectedCode = r"""import http.client
body = r'''{
"text": "I LOVE Flutter"
"text": "I LOVE Flutter",
"flag": null,
"male": true,
"female": false,
"no": 1.2,
"arr": ["null", "true", "false", null]
}'''
headers = {
@ -343,7 +378,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelPost2, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelPost2, "https"),
expectedCode);
});
@ -369,7 +406,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelPost3, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelPost3, "https"),
expectedCode);
});
});
@ -397,7 +436,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelPut1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelPut1, "https"),
expectedCode);
});
});
@ -425,7 +466,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelPatch1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelPatch1, "https"),
expectedCode);
});
});
@ -442,7 +485,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelDelete1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelDelete1, "https"),
expectedCode);
});
@ -468,7 +513,9 @@ data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelDelete2, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonHttpClient, requestModelDelete2, "https"),
expectedCode);
});
});

View File

@ -1,9 +1,10 @@
import 'package:apidash/codegen/python/requests.dart';
import '../request_models.dart';
import 'package:apidash/codegen/codegen.dart';
import 'package:apidash/consts.dart';
import 'package:test/test.dart';
import '../request_models.dart';
void main() {
final pythonRequestsCodeGen = PythonRequestsCodeGen();
final codeGen = Codegen();
group('GET Request', () {
test('GET 1', () {
@ -16,7 +17,9 @@ response = requests.get(url)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelGet1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelGet1, "https"),
expectedCode);
});
@ -26,15 +29,17 @@ print('Response Body:', response.text)
url = 'https://api.apidash.dev/country/data'
params = {
"code": "US"
}
"code": "US"
}
response = requests.get(url, params=params)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelGet2, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelGet2, "https"),
expectedCode);
});
@ -44,15 +49,17 @@ print('Response Body:', response.text)
url = 'https://api.apidash.dev/country/data'
params = {
"code": "IND"
}
"code": "IND"
}
response = requests.get(url, params=params)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelGet3, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelGet3, "https"),
expectedCode);
});
@ -62,19 +69,21 @@ print('Response Body:', response.text)
url = 'https://api.apidash.dev/humanize/social'
params = {
"num": "8700000",
"digits": "3",
"system": "SS",
"add_space": "true",
"trailing_zeros": "true"
}
"num": "8700000",
"digits": "3",
"system": "SS",
"add_space": "true",
"trailing_zeros": "true"
}
response = requests.get(url, params=params)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelGet4, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelGet4, "https"),
expectedCode);
});
@ -84,15 +93,17 @@ print('Response Body:', response.text)
url = 'https://api.github.com/repos/foss42/apidash'
headers = {
"User-Agent": "Test Agent"
}
"User-Agent": "Test Agent"
}
response = requests.get(url, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelGet5, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelGet5, "https"),
expectedCode);
});
@ -102,19 +113,21 @@ print('Response Body:', response.text)
url = 'https://api.github.com/repos/foss42/apidash'
params = {
"raw": "true"
}
"raw": "true"
}
headers = {
"User-Agent": "Test Agent"
}
"User-Agent": "Test Agent"
}
response = requests.get(url, params=params, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelGet6, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelGet6, "https"),
expectedCode);
});
@ -128,7 +141,9 @@ response = requests.get(url)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelGet7, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelGet7, "https"),
expectedCode);
});
@ -138,19 +153,21 @@ print('Response Body:', response.text)
url = 'https://api.github.com/repos/foss42/apidash'
params = {
"raw": "true"
}
"raw": "true"
}
headers = {
"User-Agent": "Test Agent"
}
"User-Agent": "Test Agent"
}
response = requests.get(url, params=params, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelGet8, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelGet8, "https"),
expectedCode);
});
@ -160,16 +177,18 @@ print('Response Body:', response.text)
url = 'https://api.apidash.dev/humanize/social'
params = {
"num": "8700000",
"add_space": "true"
}
"num": "8700000",
"add_space": "true"
}
response = requests.get(url, params=params)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelGet9, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelGet9, "https"),
expectedCode);
});
@ -179,8 +198,8 @@ print('Response Body:', response.text)
url = 'https://api.apidash.dev/humanize/social'
headers = {
"User-Agent": "Test Agent"
}
"User-Agent": "Test Agent"
}
response = requests.get(url, headers=headers)
@ -188,7 +207,8 @@ print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(
pythonRequestsCodeGen.getCode(
codeGen.getCode(
CodegenLanguage.pythonRequests,
requestModelGet10,
"https",
),
@ -201,20 +221,22 @@ print('Response Body:', response.text)
url = 'https://api.apidash.dev/humanize/social'
params = {
"num": "8700000",
"digits": "3"
}
"num": "8700000",
"digits": "3"
}
headers = {
"User-Agent": "Test Agent"
}
"User-Agent": "Test Agent"
}
response = requests.get(url, params=params, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelGet11, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelGet11, "https"),
expectedCode);
});
@ -228,7 +250,9 @@ response = requests.get(url)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelGet12, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelGet12, "https"),
expectedCode);
});
});
@ -244,7 +268,9 @@ response = requests.head(url)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelHead1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelHead1, "https"),
expectedCode);
});
@ -258,7 +284,9 @@ response = requests.head(url)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelHead2, "http"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelHead2, "http"),
expectedCode);
});
});
@ -274,15 +302,17 @@ payload = r'''{
}'''
headers = {
"content-type": "text/plain"
}
"content-type": "text/plain"
}
response = requests.post(url, data=payload, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelPost1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelPost1, "https"),
expectedCode);
});
@ -292,7 +322,12 @@ print('Response Body:', response.text)
url = 'https://api.apidash.dev/case/lower'
payload = {
"text": "I LOVE Flutter"
"text": "I LOVE Flutter",
"flag": None,
"male": True,
"female": False,
"no": 1.2,
"arr": ["null", "true", "false", None]
}
response = requests.post(url, json=payload)
@ -300,7 +335,9 @@ response = requests.post(url, json=payload)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelPost2, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelPost2, "https"),
expectedCode);
});
@ -314,15 +351,189 @@ payload = {
}
headers = {
"User-Agent": "Test Agent"
}
"User-Agent": "Test Agent"
}
response = requests.post(url, json=payload, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelPost3, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelPost3, "https"),
expectedCode);
});
test('POST 4', () {
const expectedCode = r"""import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
url = 'https://api.apidash.dev/io/form'
payload = MultipartEncoder({
"text": "API",
"sep": "|",
"times": "3",
})
headers = {
"content-type": payload.content_type
}
response = requests.post(url, data=payload, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelPost4, "https"),
expectedCode);
});
test('POST 5', () {
const expectedCode = r"""import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
url = 'https://api.apidash.dev/io/form'
payload = MultipartEncoder({
"text": "API",
"sep": "|",
"times": "3",
})
headers = {
"User-Agent": "Test Agent",
"content-type": payload.content_type
}
response = requests.post(url, data=payload, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelPost5, "https"),
expectedCode);
});
test('POST 6', () {
const expectedCode = r"""import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
url = 'https://api.apidash.dev/io/img'
payload = MultipartEncoder({
"token": "xyz",
"imfile": ("1.png", open("/Documents/up/1.png", "rb")),
})
headers = {
"content-type": payload.content_type
}
response = requests.post(url, data=payload, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelPost6, "https"),
expectedCode);
});
test('POST 7', () {
const expectedCode = r"""import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
url = 'https://api.apidash.dev/io/img'
payload = MultipartEncoder({
"token": "xyz",
"imfile": ("1.png", open("/Documents/up/1.png", "rb")),
})
headers = {
"content-type": payload.content_type
}
response = requests.post(url, data=payload, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelPost7, "https"),
expectedCode);
});
test('POST 8', () {
const expectedCode = r"""import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
url = 'https://api.apidash.dev/io/form'
params = {
"size": "2",
"len": "3"
}
payload = MultipartEncoder({
"text": "API",
"sep": "|",
"times": "3",
})
headers = {
"content-type": payload.content_type
}
response = requests.post(url, params=params, data=payload, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelPost8, "https"),
expectedCode);
});
test('POST 9', () {
const expectedCode = r"""import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
url = 'https://api.apidash.dev/io/img'
params = {
"size": "2",
"len": "3"
}
payload = MultipartEncoder({
"token": "xyz",
"imfile": ("1.png", open("/Documents/up/1.png", "rb")),
})
headers = {
"User-Agent": "Test Agent",
"Keep-Alive": "true",
"content-type": payload.content_type
}
response = requests.post(url, params=params, data=payload, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelPost9, "https"),
expectedCode);
});
});
@ -343,7 +554,9 @@ response = requests.put(url, json=payload)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelPut1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelPut1, "https"),
expectedCode);
});
});
@ -364,7 +577,9 @@ response = requests.patch(url, json=payload)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelPatch1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelPatch1, "https"),
expectedCode);
});
});
@ -380,7 +595,9 @@ response = requests.delete(url)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelDelete1, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelDelete1, "https"),
expectedCode);
});
@ -399,7 +616,9 @@ response = requests.delete(url, json=payload)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelDelete2, "https"),
expect(
codeGen.getCode(
CodegenLanguage.pythonRequests, requestModelDelete2, "https"),
expectedCode);
});
});

View File

@ -175,7 +175,7 @@ void main() {
});
expect(requestModel.paramsMap, {});
expect(requestModel.formDataMapList, []);
expect(requestModel.isFormDataRequest, false);
expect(requestModel.hasFormData, false);
expect(requestModel.hasContentTypeHeader, true);
});

View File

@ -209,7 +209,12 @@ const requestModelPost2 = RequestModel(
url: 'https://api.apidash.dev/case/lower',
method: HTTPVerb.post,
requestBody: r"""{
"text": "I LOVE Flutter"
"text": "I LOVE Flutter",
"flag": null,
"male": true,
"female": false,
"no": 1.2,
"arr": ["null", "true", "false", null]
}""",
);

View File

@ -261,14 +261,19 @@ void main() {
'postData': {
'mimeType': 'application/json',
'text': '{\n'
'"text": "I LOVE Flutter"\n'
'"text": "I LOVE Flutter",\n'
'"flag": null,\n'
'"male": true,\n'
'"female": false,\n'
'"no": 1.2,\n'
'"arr": ["null", "true", "false", null]\n'
'}',
'comment': ''
},
'comment': '',
'cookies': [],
'headersSize': -1,
'bodySize': 28
'bodySize': 124
};
expect(
requestModelToHARJsonRequest(