38 lines
1.1 KiB
Swift
38 lines
1.1 KiB
Swift
// import ApiController
|
|
// import ManualDCore
|
|
// import Vapor
|
|
//
|
|
// extension ApiController {
|
|
//
|
|
// func respond(_ route: SiteRoute.Api, request: Vapor.Request) async throws
|
|
// -> any AsyncResponseEncodable
|
|
// {
|
|
// guard let encodable = try await json(.init(route: route, logger: request.logger)) else {
|
|
// return HTTPStatus.ok
|
|
// }
|
|
// return AnyJSONResponse(value: encodable)
|
|
// }
|
|
// }
|
|
//
|
|
// struct AnyJSONResponse: AsyncResponseEncodable {
|
|
// public var headers: HTTPHeaders = ["Content-Type": "application/json"]
|
|
// let value: any Encodable
|
|
//
|
|
// init(additionalHeaders: HTTPHeaders = [:], value: any Encodable) {
|
|
// if additionalHeaders.contains(name: .contentType) {
|
|
// self.headers = additionalHeaders
|
|
// } else {
|
|
// headers.add(contentsOf: additionalHeaders)
|
|
// }
|
|
// self.value = value
|
|
// }
|
|
//
|
|
// func encodeResponse(for request: Request) async throws -> Response {
|
|
// try Response(
|
|
// status: .ok,
|
|
// headers: headers,
|
|
// body: .init(data: JSONEncoder().encode(value))
|
|
// )
|
|
// }
|
|
// }
|