Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/samples-zapier.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Samples Zapier

on:
push:
branches:
- 'samples/client/petstore/zapier/**'
pull_request:
paths:
- 'samples/client/petstore/zapier/**'

jobs:
validate:
name: Test zapier generation
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
sample:
- samples/client/petstore/zapier
steps:
- uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
- name: Install dependencies
working-directory: ${{ matrix.sample }}
run: |
npm install -g zapier-platform-cli
npm install
- name: Validate
working-directory: ${{ matrix.sample }}
run: zapier validate
13 changes: 12 additions & 1 deletion modules/openapi-generator/src/main/resources/zapier/api.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ module.exports = {
{
key: '{{baseName}}',
label: '{{description}}',
type: '{{#isInteger}}integer{{/isInteger}}{{^isInteger}}{{#isNumeric}}number{{/isNumeric}}{{/isInteger}}{{#isString}}string{{/isString}}{{#isBoolean}}boolean{{/isBoolean}}{{#isDateTime}}datetime{{/isDateTime}}{{#isDate}}datetime{{/isDate}}{{#isFile}}file{{/isFile}}',
type: '{{dataType}}',
{{#required}}
required: true,
{{/required}}
Expand All @@ -42,14 +42,25 @@ module.exports = {
},
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{#isArray}}
{
key: '{{baseName}}',
label: '{{description}}',
type: 'string',
}
{{/isArray}}
{{^isArray}}
...{{baseType}}.fields(),
{{/isArray}}
{{/isPrimitiveType}}
{{/allParams}}
],
outputFields: [
{{#returnType}}
{{^returnTypeIsPrimitive}}
{{^isArray}}
...{{returnType}}.fields('', false),
{{/isArray}}
{{/returnTypeIsPrimitive}}
{{/returnType}}
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,20 +183,10 @@ public override int GetHashCode()
IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
if (this.Cultivar != null) {
// Cultivar (string) pattern
Regex regexCultivar = new Regex(@"^[a-zA-Z\s]*$", RegexOptions.CultureInvariant);
if (!regexCultivar.Match(this.Cultivar).Success)
{
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Cultivar, must match a pattern of " + regexCultivar, new [] { "Cultivar" });
} }
}

if (this.Origin != null) {
// Origin (string) pattern
Regex regexOrigin = new Regex(@"^[A-Z\s]*$", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
if (!regexOrigin.Match(this.Origin).Success)
{
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Origin, must match a pattern of " + regexOrigin, new [] { "Origin" });
} }
}

yield break;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -832,12 +832,7 @@ public override int GetHashCode()
}

if (this.VarString != null) {
// VarString (string) pattern
Regex regexVarString = new Regex(@"[a-z]", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
if (!regexVarString.Match(this.VarString).Success)
{
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for VarString, must match a pattern of " + regexVarString, new [] { "VarString" });
} }
}

// Password (string) maxLength
if (this.Password != null && this.Password.Length > 64)
Expand All @@ -852,28 +847,13 @@ public override int GetHashCode()
}

if (this.PatternWithDigits != null) {
// PatternWithDigits (string) pattern
Regex regexPatternWithDigits = new Regex(@"^\d{10}$", RegexOptions.CultureInvariant);
if (!regexPatternWithDigits.Match(this.PatternWithDigits).Success)
{
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for PatternWithDigits, must match a pattern of " + regexPatternWithDigits, new [] { "PatternWithDigits" });
} }
}

if (this.PatternWithDigitsAndDelimiter != null) {
// PatternWithDigitsAndDelimiter (string) pattern
Regex regexPatternWithDigitsAndDelimiter = new Regex(@"^image_\d{1,3}$", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
if (!regexPatternWithDigitsAndDelimiter.Match(this.PatternWithDigitsAndDelimiter).Success)
{
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for PatternWithDigitsAndDelimiter, must match a pattern of " + regexPatternWithDigitsAndDelimiter, new [] { "PatternWithDigitsAndDelimiter" });
} }
}

if (this.PatternWithBackslash != null) {
// PatternWithBackslash (string) pattern
Regex regexPatternWithBackslash = new Regex(@"^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))$", RegexOptions.CultureInvariant);
if (!regexPatternWithBackslash.Match(this.PatternWithBackslash).Success)
{
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for PatternWithBackslash, must match a pattern of " + regexPatternWithBackslash, new [] { "PatternWithBackslash" });
} }
}

yield break;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -253,12 +253,7 @@ public override int GetHashCode()
IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
if (this.UuidWithPattern != null) {
// UuidWithPattern (Guid) pattern
Regex regexUuidWithPattern = new Regex(@"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", RegexOptions.CultureInvariant);
if (!regexUuidWithPattern.Match(this.UuidWithPattern.ToString()).Success)
{
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for UuidWithPattern, must match a pattern of " + regexUuidWithPattern, new [] { "UuidWithPattern" });
} }
}

yield break;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1736,31 +1736,31 @@ public async Task<ApiResponse<ModelClient>> TestClientModelAsync(ModelClient mod
/// Validates the request parameters
/// </summary>
/// <param name="varByte"></param>
/// <param name="patternWithoutDelimiter"></param>
/// <param name="callback"></param>
/// <param name="binary"></param>
/// <param name="varString"></param>
/// <param name="password"></param>
/// <param name="callback"></param>
/// <param name="patternWithoutDelimiter"></param>
/// <param name="varString"></param>
/// <returns></returns>
private void ValidateTestEndpointParameters(byte[] varByte, string patternWithoutDelimiter, Option<System.IO.Stream> binary, Option<string> varString, Option<string> password, Option<string> callback)
private void ValidateTestEndpointParameters(byte[] varByte, Option<string> callback, Option<System.IO.Stream> binary, Option<string> password, string patternWithoutDelimiter, Option<string> varString)
{
if (varByte == null)
throw new ArgumentNullException(nameof(varByte));

if (patternWithoutDelimiter == null)
throw new ArgumentNullException(nameof(patternWithoutDelimiter));
if (callback.IsSet && callback.Value == null)
throw new ArgumentNullException(nameof(callback));

if (binary.IsSet && binary.Value == null)
throw new ArgumentNullException(nameof(binary));

if (varString.IsSet && varString.Value == null)
throw new ArgumentNullException(nameof(varString));

if (password.IsSet && password.Value == null)
throw new ArgumentNullException(nameof(password));

if (callback.IsSet && callback.Value == null)
throw new ArgumentNullException(nameof(callback));
if (patternWithoutDelimiter == null)
throw new ArgumentNullException(nameof(patternWithoutDelimiter));

if (varString.IsSet && varString.Value == null)
throw new ArgumentNullException(nameof(varString));
}

/// <summary>
Expand Down Expand Up @@ -1915,7 +1915,7 @@ public async Task<ApiResponse<object>> TestEndpointParametersAsync(byte[] varByt

try
{
ValidateTestEndpointParameters(varByte, patternWithoutDelimiter, binary, varString, password, callback);
ValidateTestEndpointParameters(varByte, callback, binary, password, patternWithoutDelimiter, varString);

FormatTestEndpointParameters(ref varByte, ref number, ref varDouble, ref patternWithoutDelimiter, ref date, ref binary, ref varFloat, ref integer, ref int32, ref int64, ref varString, ref password, ref callback, ref dateTime);

Expand Down Expand Up @@ -2023,15 +2023,18 @@ public async Task<ApiResponse<object>> TestEndpointParametersAsync(byte[] varByt
/// <summary>
/// Validates the request parameters
/// </summary>
/// <param name="enumHeaderString"></param>
/// <param name="enumHeaderStringArray"></param>
/// <param name="enumQueryStringArray"></param>
/// <param name="enumFormStringArray"></param>
/// <param name="enumHeaderString"></param>
/// <param name="enumQueryString"></param>
/// <param name="enumFormString"></param>
/// <param name="enumQueryString"></param>
/// <returns></returns>
private void ValidateTestEnumParameters(Option<List<string>> enumHeaderStringArray, Option<List<string>> enumQueryStringArray, Option<List<string>> enumFormStringArray, Option<string> enumHeaderString, Option<string> enumQueryString, Option<string> enumFormString)
private void ValidateTestEnumParameters(Option<string> enumHeaderString, Option<List<string>> enumHeaderStringArray, Option<List<string>> enumQueryStringArray, Option<List<string>> enumFormStringArray, Option<string> enumFormString, Option<string> enumQueryString)
{
if (enumHeaderString.IsSet && enumHeaderString.Value == null)
throw new ArgumentNullException(nameof(enumHeaderString));

if (enumHeaderStringArray.IsSet && enumHeaderStringArray.Value == null)
throw new ArgumentNullException(nameof(enumHeaderStringArray));

Expand All @@ -2041,14 +2044,11 @@ private void ValidateTestEnumParameters(Option<List<string>> enumHeaderStringArr
if (enumFormStringArray.IsSet && enumFormStringArray.Value == null)
throw new ArgumentNullException(nameof(enumFormStringArray));

if (enumHeaderString.IsSet && enumHeaderString.Value == null)
throw new ArgumentNullException(nameof(enumHeaderString));
if (enumFormString.IsSet && enumFormString.Value == null)
throw new ArgumentNullException(nameof(enumFormString));

if (enumQueryString.IsSet && enumQueryString.Value == null)
throw new ArgumentNullException(nameof(enumQueryString));

if (enumFormString.IsSet && enumFormString.Value == null)
throw new ArgumentNullException(nameof(enumFormString));
}

/// <summary>
Expand Down Expand Up @@ -2167,7 +2167,7 @@ public async Task<ApiResponse<object>> TestEnumParametersAsync(Option<List<strin

try
{
ValidateTestEnumParameters(enumHeaderStringArray, enumQueryStringArray, enumFormStringArray, enumHeaderString, enumQueryString, enumFormString);
ValidateTestEnumParameters(enumHeaderString, enumHeaderStringArray, enumQueryStringArray, enumFormStringArray, enumFormString, enumQueryString);

FormatTestEnumParameters(enumHeaderStringArray, enumQueryStringArray, ref enumQueryDouble, ref enumQueryInteger, enumFormStringArray, ref enumHeaderString, ref enumQueryString, ref enumFormString);

Expand Down Expand Up @@ -2711,36 +2711,36 @@ public async Task<ApiResponse<object>> TestJsonFormDataAsync(string param, strin
/// <summary>
/// Validates the request parameters
/// </summary>
/// <param name="pipe"></param>
/// <param name="ioutil"></param>
/// <param name="http"></param>
/// <param name="url"></param>
/// <param name="context"></param>
/// <param name="requiredNotNullable"></param>
/// <param name="notRequiredNotNullable"></param>
/// <param name="pipe"></param>
/// <param name="ioutil"></param>
/// <param name="url"></param>
/// <param name="http"></param>
/// <returns></returns>
private void ValidateTestQueryParameterCollectionFormat(List<string> pipe, List<string> ioutil, List<string> http, List<string> url, List<string> context, string requiredNotNullable, Option<string> notRequiredNotNullable)
private void ValidateTestQueryParameterCollectionFormat(List<string> context, string requiredNotNullable, Option<string> notRequiredNotNullable, List<string> pipe, List<string> ioutil, List<string> url, List<string> http)
{
if (context == null)
throw new ArgumentNullException(nameof(context));

if (requiredNotNullable == null)
throw new ArgumentNullException(nameof(requiredNotNullable));

if (notRequiredNotNullable.IsSet && notRequiredNotNullable.Value == null)
throw new ArgumentNullException(nameof(notRequiredNotNullable));

if (pipe == null)
throw new ArgumentNullException(nameof(pipe));

if (ioutil == null)
throw new ArgumentNullException(nameof(ioutil));

if (http == null)
throw new ArgumentNullException(nameof(http));

if (url == null)
throw new ArgumentNullException(nameof(url));

if (context == null)
throw new ArgumentNullException(nameof(context));

if (requiredNotNullable == null)
throw new ArgumentNullException(nameof(requiredNotNullable));

if (notRequiredNotNullable.IsSet && notRequiredNotNullable.Value == null)
throw new ArgumentNullException(nameof(notRequiredNotNullable));
if (http == null)
throw new ArgumentNullException(nameof(http));
}

/// <summary>
Expand Down Expand Up @@ -2865,7 +2865,7 @@ public async Task<ApiResponse<object>> TestQueryParameterCollectionFormatAsync(L

try
{
ValidateTestQueryParameterCollectionFormat(pipe, ioutil, http, url, context, requiredNotNullable, notRequiredNotNullable);
ValidateTestQueryParameterCollectionFormat(context, requiredNotNullable, notRequiredNotNullable, pipe, ioutil, url, http);

FormatTestQueryParameterCollectionFormat(pipe, ioutil, http, url, context, ref requiredNotNullable, ref requiredNullable, ref notRequiredNotNullable, ref notRequiredNullable);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1429,16 +1429,16 @@ public async Task<ApiResponse<object>> UpdatePetWithFormAsync(long petId, Option
/// <summary>
/// Validates the request parameters
/// </summary>
/// <param name="file"></param>
/// <param name="additionalMetadata"></param>
/// <param name="file"></param>
/// <returns></returns>
private void ValidateUploadFile(Option<System.IO.Stream> file, Option<string> additionalMetadata)
private void ValidateUploadFile(Option<string> additionalMetadata, Option<System.IO.Stream> file)
{
if (file.IsSet && file.Value == null)
throw new ArgumentNullException(nameof(file));

if (additionalMetadata.IsSet && additionalMetadata.Value == null)
throw new ArgumentNullException(nameof(additionalMetadata));

if (file.IsSet && file.Value == null)
throw new ArgumentNullException(nameof(file));
}

/// <summary>
Expand Down Expand Up @@ -1527,7 +1527,7 @@ public async Task<ApiResponse<ApiResponse>> UploadFileAsync(long petId, Option<S

try
{
ValidateUploadFile(file, additionalMetadata);
ValidateUploadFile(additionalMetadata, file);

FormatUploadFile(ref petId, ref file, ref additionalMetadata);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,20 +86,10 @@ public override string ToString()
IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
if (this.Cultivar != null) {
// Cultivar (string) pattern
Regex regexCultivar = new Regex(@"^[a-zA-Z\s]*$", RegexOptions.CultureInvariant);
if (!regexCultivar.Match(this.Cultivar).Success)
{
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Cultivar, must match a pattern of " + regexCultivar, new [] { "Cultivar" });
} }
}

if (this.Origin != null) {
// Origin (string) pattern
Regex regexOrigin = new Regex(@"^[A-Z\s]*$", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
if (!regexOrigin.Match(this.Origin).Success)
{
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Origin, must match a pattern of " + regexOrigin, new [] { "Origin" });
} }
}

yield break;
}
Expand Down
Loading