Files
apidash/lib/codegen/codegen.dart
2024-12-15 07:37:18 +05:30

123 lines
4.3 KiB
Dart

import 'package:apidash/consts.dart';
import 'package:apidash/models/models.dart';
import 'package:apidash/utils/utils.dart' show getNewUuid;
import 'package:apidash_core/apidash_core.dart';
import 'c/curl.dart';
import 'csharp/http_client.dart';
import 'csharp/rest_sharp.dart';
import 'dart/dio.dart';
import 'dart/http.dart';
import 'go/http.dart';
import 'java/async_http_client.dart';
import 'java/httpclient.dart';
import 'java/okhttp.dart';
import 'java/unirest.dart';
import 'js/axios.dart';
import 'js/fetch.dart';
import 'julia/http.dart';
import 'kotlin/okhttp.dart';
import 'others/curl.dart';
import 'others/har.dart';
import 'php/curl.dart';
import 'php/guzzle.dart';
import 'php/http_plug.dart';
import 'python/http_client.dart';
import 'python/requests.dart';
import 'ruby/faraday.dart';
import 'ruby/net_http.dart';
import 'rust/actix.dart';
import 'rust/curl_rust.dart';
import 'rust/hyper.dart';
import 'rust/reqwest.dart';
import 'rust/ureq.dart';
import 'swift/urlsession.dart';
class Codegen {
String? getCode(
CodegenLanguage codegenLanguage,
RequestModel requestModel,
SupportedUriSchemes defaultUriScheme, {
String? boundary,
}) {
var httpRequestModel = requestModel.httpRequestModel;
if (httpRequestModel == null) {
return "";
}
String url = httpRequestModel.url;
if (url.isEmpty) {
url = kDefaultUri;
}
if (!url.contains("://") && url.isNotEmpty) {
url = "${defaultUriScheme.name}://$url";
}
var rM = httpRequestModel.copyWith(url: url);
switch (codegenLanguage) {
case CodegenLanguage.curl:
return cURLCodeGen().getCode(rM);
case CodegenLanguage.har:
return HARCodeGen().getCode(rM, boundary: boundary);
case CodegenLanguage.dartHttp:
return DartHttpCodeGen().getCode(rM);
case CodegenLanguage.dartDio:
return DartDioCodeGen().getCode(rM);
case CodegenLanguage.goHttp:
return GoHttpCodeGen().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.javaAsyncHttpClient:
return JavaAsyncHttpClientGen().getCode(rM);
case CodegenLanguage.javaHttpClient:
return JavaHttpClientCodeGen().getCode(rM, boundary: boundary);
case CodegenLanguage.javaOkHttp:
return JavaOkHttpCodeGen().getCode(rM);
case CodegenLanguage.javaUnirest:
return JavaUnirestGen().getCode(rM);
case CodegenLanguage.juliaHttp:
return JuliaHttpClientCodeGen().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.rubyFaraday:
return RubyFaradayCodeGen().getCode(rM);
case CodegenLanguage.rubyNetHttp:
return RubyNetHttpCodeGen().getCode(rM);
case CodegenLanguage.rustActix:
return RustActixCodeGen().getCode(rM, boundary: boundary);
case CodegenLanguage.rustCurl:
return RustCurlCodeGen().getCode(rM);
case CodegenLanguage.rustHyper:
return RustHyperCodeGen().getCode(rM);
case CodegenLanguage.rustReqwest:
return RustReqwestCodeGen().getCode(rM);
case CodegenLanguage.rustUreq:
return RustUreqCodeGen().getCode(rM, boundary: boundary);
case CodegenLanguage.phpGuzzle:
return PhpGuzzleCodeGen().getCode(rM);
case CodegenLanguage.phpCurl:
return PHPcURLCodeGen().getCode(rM);
case CodegenLanguage.cCurlCodeGen:
return CCurlCodeGen().getCode(rM);
case CodegenLanguage.cSharpHttpClient:
return CSharpHttpClientCodeGen().getCode(rM);
case CodegenLanguage.cSharpRestSharp:
return CSharpRestSharp().getCode(rM);
case CodegenLanguage.phpHttpPlug:
return PhpHttpPlugCodeGen().getCode(rM);
case CodegenLanguage.swiftUrlSession:
return SwiftURLSessionCodeGen().getCode(rM);
}
}
}