mirror of
https://github.com/foss42/apidash.git
synced 2025-05-23 01:06:46 +08:00
73 lines
2.4 KiB
Dart
73 lines
2.4 KiB
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 'go/http.dart';
|
|
import 'kotlin/okhttp.dart';
|
|
import 'python/http_client.dart';
|
|
import 'python/requests.dart';
|
|
import 'rust/actix.dart';
|
|
import 'rust/reqwest.dart';
|
|
import 'rust/ureq.dart';
|
|
import 'js/axios.dart';
|
|
import 'js/fetch.dart';
|
|
import 'others/har.dart';
|
|
import 'others/curl.dart';
|
|
import 'julia/http.dart';
|
|
|
|
class Codegen {
|
|
String? getCode(
|
|
CodegenLanguage codegenLanguage,
|
|
RequestModel requestModel,
|
|
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(rM);
|
|
case CodegenLanguage.har:
|
|
return HARCodeGen().getCode(rM, defaultUriScheme, boundary: boundary);
|
|
case CodegenLanguage.dartHttp:
|
|
return DartHttpCodeGen().getCode(rM);
|
|
case CodegenLanguage.dartDio:
|
|
return DartDioCodeGen().getCode(rM);
|
|
case CodegenLanguage.jsAxios:
|
|
return AxiosCodeGen().getCode(rM);
|
|
case CodegenLanguage.jsFetch:
|
|
return FetchCodeGen().getCode(rM);
|
|
case CodegenLanguage.nodejsAxios:
|
|
return AxiosCodeGen(isNodeJs: true).getCode(rM);
|
|
case CodegenLanguage.nodejsFetch:
|
|
return FetchCodeGen(isNodeJs: true).getCode(rM);
|
|
case CodegenLanguage.kotlinOkHttp:
|
|
return KotlinOkHttpCodeGen().getCode(rM);
|
|
case CodegenLanguage.pythonHttpClient:
|
|
return PythonHttpClientCodeGen()
|
|
.getCode(rM, boundary: boundary ?? getNewUuid());
|
|
case CodegenLanguage.pythonRequests:
|
|
return PythonRequestsCodeGen().getCode(rM, boundary: boundary);
|
|
case CodegenLanguage.rustActix:
|
|
return RustActixCodeGen().getCode(rM, boundary: boundary);
|
|
case CodegenLanguage.rustReqwest:
|
|
return RustReqwestCodeGen().getCode(rM);
|
|
case CodegenLanguage.rustUreq:
|
|
return RustUreqCodeGen().getCode(rM, boundary: boundary);
|
|
case CodegenLanguage.goHttp:
|
|
return GoHttpCodeGen().getCode(rM);
|
|
case CodegenLanguage.juliaHttp:
|
|
return JuliaHttpClientCodeGen().getCode(rM);
|
|
}
|
|
}
|
|
}
|