mirror of
https://github.com/danieleteti/delphimvcframework.git
synced 2024-11-17 16:55:54 +01:00
159 lines
5.6 KiB
ObjectPascal
159 lines
5.6 KiB
ObjectPascal
|
{******************************************************************************}
|
||
|
{ }
|
||
|
{ Delphi SwagDoc Library }
|
||
|
{ Copyright (c) 2018 Marcelo Jaloto }
|
||
|
{ https://github.com/marcelojaloto/SwagDoc }
|
||
|
{ }
|
||
|
{******************************************************************************}
|
||
|
{ }
|
||
|
{ Licensed under the Apache License, Version 2.0 (the "License"); }
|
||
|
{ you may not use this file except in compliance with the License. }
|
||
|
{ You may obtain a copy of the License at }
|
||
|
{ }
|
||
|
{ http://www.apache.org/licenses/LICENSE-2.0 }
|
||
|
{ }
|
||
|
{ Unless required by applicable law or agreed to in writing, software }
|
||
|
{ distributed under the License is distributed on an "AS IS" BASIS, }
|
||
|
{ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. }
|
||
|
{ See the License for the specific language governing permissions and }
|
||
|
{ limitations under the License. }
|
||
|
{ }
|
||
|
{******************************************************************************}
|
||
|
|
||
|
unit Swag.Common.Types.Helpers;
|
||
|
|
||
|
interface
|
||
|
|
||
|
uses
|
||
|
Swag.Common.Types;
|
||
|
|
||
|
type
|
||
|
TSwagPathTypeOperationHelper = record helper for TSwagPathTypeOperation
|
||
|
public
|
||
|
procedure ToType(const pHttpVerbString: string);
|
||
|
end;
|
||
|
|
||
|
TSwagRequestParameterInLocationHelper = record helper for TSwagRequestParameterInLocation
|
||
|
public
|
||
|
procedure ToType(const pInLocationString: string);
|
||
|
end;
|
||
|
|
||
|
TSwagTransferProtocolSchemeHelper = record helper for TSwagTransferProtocolScheme
|
||
|
public
|
||
|
procedure ToType(const pTransferProtocolSchemeString: string);
|
||
|
end;
|
||
|
|
||
|
TSwagSecurityDefinitionTypeHelper = record helper for TSwagSecurityDefinitionType
|
||
|
public
|
||
|
procedure ToType(const pSecurityDefinitionTypeString: string);
|
||
|
end;
|
||
|
|
||
|
TSwagTransferProtocolSchemesHelper = record helper for TSwagTransferProtocolSchemes
|
||
|
public
|
||
|
procedure Add(const pScheme: TSwagTransferProtocolScheme); overload;
|
||
|
procedure Add(const pSchemeString: string); overload;
|
||
|
end;
|
||
|
|
||
|
TSwagTypeParameterHelper = record helper for TSwagTypeParameter
|
||
|
public
|
||
|
procedure ToType(const pTypeParameter: string);
|
||
|
end;
|
||
|
|
||
|
implementation
|
||
|
|
||
|
uses
|
||
|
System.SysUtils,
|
||
|
Swag.Common.Consts;
|
||
|
|
||
|
{ TSwagPathTypeOperationHelper }
|
||
|
|
||
|
procedure TSwagPathTypeOperationHelper.ToType(const pHttpVerbString: string);
|
||
|
var
|
||
|
vPathTypeOperation: TSwagPathTypeOperation;
|
||
|
begin
|
||
|
Self := ohvNotDefined;
|
||
|
for vPathTypeOperation := Low(TSwagPathTypeOperation) to High(TSwagPathTypeOperation) do
|
||
|
if (LowerCase(c_SwagPathOperationHttpVerbs[vPathTypeOperation]) = LowerCase(pHttpVerbString)) then
|
||
|
begin
|
||
|
Self := vPathTypeOperation;
|
||
|
Break;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
{ TSwagRequestParameterInLocationHelper }
|
||
|
|
||
|
procedure TSwagRequestParameterInLocationHelper.ToType(const pInLocationString: string);
|
||
|
var
|
||
|
vRequestParameterInLocation: TSwagRequestParameterInLocation;
|
||
|
begin
|
||
|
Self := rpiNotDefined;
|
||
|
for vRequestParameterInLocation := Low(TSwagRequestParameterInLocation) to High(TSwagRequestParameterInLocation) do
|
||
|
if (LowerCase(c_SwagRequestParameterInLocation[vRequestParameterInLocation]) = LowerCase(pInLocationString)) then
|
||
|
begin
|
||
|
Self := vRequestParameterInLocation;
|
||
|
Break;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
{ TSwagTransferProtocolSchemeHelper }
|
||
|
|
||
|
procedure TSwagTransferProtocolSchemeHelper.ToType(const pTransferProtocolSchemeString: string);
|
||
|
var
|
||
|
vTransferProtocolScheme: TSwagTransferProtocolScheme;
|
||
|
begin
|
||
|
Self := tpsNotDefined;
|
||
|
for vTransferProtocolScheme := Low(TSwagTransferProtocolScheme) to High(TSwagTransferProtocolScheme) do
|
||
|
if (LowerCase(c_SwagTransferProtocolScheme[vTransferProtocolScheme]) = LowerCase(pTransferProtocolSchemeString)) then
|
||
|
begin
|
||
|
Self := vTransferProtocolScheme;
|
||
|
Break;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
{ TSwagTransferProtocolSchemesHelper }
|
||
|
|
||
|
procedure TSwagTransferProtocolSchemesHelper.Add(const pScheme: TSwagTransferProtocolScheme);
|
||
|
begin
|
||
|
Self := Self + [pScheme];
|
||
|
end;
|
||
|
|
||
|
procedure TSwagTransferProtocolSchemesHelper.Add(const pSchemeString: string);
|
||
|
var
|
||
|
vScheme: TSwagTransferProtocolScheme;
|
||
|
begin
|
||
|
vScheme.ToType(pSchemeString);
|
||
|
Self.Add(vScheme);
|
||
|
end;
|
||
|
|
||
|
{ TSwagTypeParameterHelper }
|
||
|
|
||
|
procedure TSwagTypeParameterHelper.ToType(const pTypeParameter: string);
|
||
|
var
|
||
|
vSwagTypeParameter: TSwagTypeParameter;
|
||
|
begin
|
||
|
Self := stpNotDefined;
|
||
|
for vSwagTypeParameter := Low(TSwagTypeParameter) to High(TSwagTypeParameter) do
|
||
|
if (LowerCase(c_SwagTypeParameter[vSwagTypeParameter]) = LowerCase(pTypeParameter)) then
|
||
|
begin
|
||
|
Self := vSwagTypeParameter;
|
||
|
Break;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
{ TSwagSecurityDefinitionTypeHelper }
|
||
|
|
||
|
procedure TSwagSecurityDefinitionTypeHelper.ToType(const pSecurityDefinitionTypeString: string);
|
||
|
var
|
||
|
vSecurityDefinitionType: TSwagSecurityDefinitionType;
|
||
|
begin
|
||
|
Self := ssdNotDefined;
|
||
|
for vSecurityDefinitionType := Low(TSwagSecurityDefinitionType) to High(TSwagSecurityDefinitionType) do
|
||
|
if (LowerCase(c_SwagSecurityDefinitionType[vSecurityDefinitionType]) = LowerCase(pSecurityDefinitionTypeString.Trim)) then
|
||
|
begin
|
||
|
Self := vSecurityDefinitionType;
|
||
|
Break;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
end.
|