//
// DO NOT EDIT: generated by fsdgencsharp
//
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Net;
using System.Net.Http;
using Facility.Core;
using Facility.Core.Http;
#pragma warning disable 612, 618 // member is obsolete
namespace Oap.Api.v1.Http
{
[System.CodeDom.Compiler.GeneratedCode("fsdgencsharp", "")]
public static partial class OapApiV1HttpMapping
{
///
/// Gets applications for the current user.
///
public static readonly HttpMethodMapping GetApplicationsMapping =
new HttpMethodMapping.Builder
{
HttpMethod = HttpMethod.Get,
Path = "/applications",
GetUriParameters = request =>
new Dictionary
{
{ "status", request.Status == null ? null : request.Status.Value.ToString() },
{ "limit", request.Limit == null ? null : request.Limit.Value.ToString(CultureInfo.InvariantCulture) },
{ "nextToken", request.NextToken },
},
SetUriParameters = (request, parameters) =>
{
parameters.TryGetValue("status", out var queryParameterStatus);
request.Status = queryParameterStatus == null ? default(ApplicationStatus?) : new ApplicationStatus(queryParameterStatus);
parameters.TryGetValue("limit", out var queryParameterLimit);
request.Limit = ServiceDataUtility.TryParseInt32(queryParameterLimit);
parameters.TryGetValue("nextToken", out var queryParameterNextToken);
request.NextToken = queryParameterNextToken;
return request;
},
ResponseMappings =
{
new HttpResponseMapping.Builder
{
StatusCode = (HttpStatusCode) 200,
ResponseBodyType = typeof(GetApplicationsResponseDto),
}.Build(),
},
}.Build();
///
/// Creates a new application for the current user.
///
public static readonly HttpMethodMapping CreateApplicationMapping =
new HttpMethodMapping.Builder
{
HttpMethod = HttpMethod.Post,
Path = "/applications/",
ValidateRequest = request =>
{
if (request.ApplicationCreateSet == null)
return ServiceResult.Failure(ServiceErrors.CreateRequestFieldRequired("applicationCreateSet"));
return ServiceResult.Success();
},
RequestBodyType = typeof(ApplicationCreateSetDto),
GetRequestBody = request => request.ApplicationCreateSet,
CreateRequest = body => new CreateApplicationRequestDto { ApplicationCreateSet = (ApplicationCreateSetDto) body },
ResponseMappings =
{
new HttpResponseMapping.Builder
{
StatusCode = (HttpStatusCode) 200,
ResponseBodyType = typeof(ApplicationDto),
MatchesResponse = response => response.Application != null,
GetResponseBody = response => response.Application,
CreateResponse = body => new CreateApplicationResponseDto { Application = (ApplicationDto) body },
}.Build(),
new HttpResponseMapping.Builder
{
StatusCode = (HttpStatusCode) 201,
}.Build(),
},
}.Build();
///
/// Gets the specified application for the current user.
///
public static readonly HttpMethodMapping GetApplicationMapping =
new HttpMethodMapping.Builder
{
HttpMethod = HttpMethod.Get,
Path = "/applications/{id}",
ValidateRequest = request =>
{
if (string.IsNullOrEmpty(request.Id))
return ServiceResult.Failure(ServiceErrors.CreateRequestFieldRequired("id"));
return ServiceResult.Success();
},
GetUriParameters = request =>
new Dictionary
{
{ "id", request.Id },
},
SetUriParameters = (request, parameters) =>
{
parameters.TryGetValue("id", out var queryParameterId);
request.Id = queryParameterId;
return request;
},
ResponseMappings =
{
new HttpResponseMapping.Builder
{
StatusCode = (HttpStatusCode) 200,
ResponseBodyType = typeof(ApplicationDto),
MatchesResponse = response => response.Application != null,
GetResponseBody = response => response.Application,
CreateResponse = body => new GetApplicationResponseDto { Application = (ApplicationDto) body },
}.Build(),
new HttpResponseMapping.Builder
{
StatusCode = (HttpStatusCode) 304,
MatchesResponse = response => response.NotModified.GetValueOrDefault(),
CreateResponse = body => new GetApplicationResponseDto { NotModified = true },
}.Build(),
},
GetResponseHeaders = response =>
new Dictionary
{
["eTag"] = response.ETag,
},
SetResponseHeaders = (response, headers) =>
{
headers.TryGetValue("eTag", out var headerETag);
response.ETag = headerETag;
return response;
},
}.Build();
///
/// Updates the application.
///
public static readonly HttpMethodMapping UpdateApplicationMapping =
new HttpMethodMapping.Builder
{
HttpMethod = new HttpMethod("PATCH"),
Path = "/applications/{id}",
ValidateRequest = request =>
{
if (string.IsNullOrEmpty(request.Id))
return ServiceResult.Failure(ServiceErrors.CreateRequestFieldRequired("id"));
if (request.ApplicationChangeSet == null)
return ServiceResult.Failure(ServiceErrors.CreateRequestFieldRequired("applicationChangeSet"));
return ServiceResult.Success();
},
GetUriParameters = request =>
new Dictionary
{
{ "id", request.Id },
},
SetUriParameters = (request, parameters) =>
{
parameters.TryGetValue("id", out var queryParameterId);
request.Id = queryParameterId;
return request;
},
RequestBodyType = typeof(ApplicationChangeSetDto),
GetRequestBody = request => request.ApplicationChangeSet,
CreateRequest = body => new UpdateApplicationRequestDto { ApplicationChangeSet = (ApplicationChangeSetDto) body },
ResponseMappings =
{
new HttpResponseMapping.Builder
{
StatusCode = (HttpStatusCode) 200,
ResponseBodyType = typeof(ApplicationDto),
MatchesResponse = response => response.Application != null,
GetResponseBody = response => response.Application,
CreateResponse = body => new UpdateApplicationResponseDto { Application = (ApplicationDto) body },
}.Build(),
},
}.Build();
}
}