Switching from custom exception to System.ArgumentException.

This commit is contained in:
Marcin Stefaniuk 2016-05-20 14:22:48 +02:00
parent 0005faf77d
commit eaddc18537
5 changed files with 6 additions and 60 deletions

View File

@ -87,7 +87,6 @@ public class NancyFXServerCodegen extends AbstractCSharpCodegen {
apiPackage = packageName + ".Module"; apiPackage = packageName + ".Module";
modelPackage = packageName + ".Model"; modelPackage = packageName + ".Model";
supportingFiles.add(new SupportingFile("ApiException.mustache", sourceFolder(), "ApiException.cs"));
supportingFiles.add(new SupportingFile("RequestExtensions.mustache", sourceFolder(), "RequestExtensions.cs")); supportingFiles.add(new SupportingFile("RequestExtensions.mustache", sourceFolder(), "RequestExtensions.cs"));
supportingFiles.add(new SupportingFile("packages.config.mustache", sourceFolder(), "packages.config")); supportingFiles.add(new SupportingFile("packages.config.mustache", sourceFolder(), "packages.config"));

View File

@ -1,49 +0,0 @@
using System;
namespace {{packageName}}.Module
{
/// <summary>
/// API Exception
/// </summary>
public class ApiException : Exception
{
/// <summary>
/// Gets or sets the error code (HTTP status code)
/// </summary>
/// <value>The error code (HTTP status code).</value>
public int ErrorCode { get; set; }
/// <summary>
/// Gets or sets the error content (body json object)
/// </summary>
/// <value>The error content (Http response body).</value>
public {{#supportsAsync}}dynamic{{/supportsAsync}}{{^supportsAsync}}object{{/supportsAsync}} ErrorContent { get; private set; }
/// <summary>
/// Initializes a new instance of the <see cref="ApiException"/> class.
/// </summary>
public ApiException() {}
/// <summary>
/// Initializes a new instance of the <see cref="ApiException"/> class.
/// </summary>
/// <param name="errorCode">HTTP status code.</param>
/// <param name="message">Error message.</param>
public ApiException(int errorCode, string message) : base(message)
{
this.ErrorCode = errorCode;
}
/// <summary>
/// Initializes a new instance of the <see cref="ApiException"/> class.
/// </summary>
/// <param name="errorCode">HTTP status code.</param>
/// <param name="message">Error message.</param>
/// <param name="errorContent">Error content.</param>
public ApiException(int errorCode, string message, {{#supportsAsync}}dynamic{{/supportsAsync}}{{^supportsAsync}}object{{/supportsAsync}} errorContent = null) : base(message)
{
this.ErrorCode = errorCode;
this.ErrorContent = errorContent;
}
}
}

View File

@ -1,3 +1,4 @@
using System;
using Nancy; using Nancy;
using Nancy.ModelBinding; using Nancy.ModelBinding;
using System.Collections.Generic; using System.Collections.Generic;
@ -7,8 +8,7 @@ using {{packageName}}.Model;
namespace {{packageName}}.Module namespace {{packageName}}.Module
{ {{#operations}} { {{#operations}}
{{#operation}}{{#allParams}}{{#isEnum}}{{>innerEnum}} {{#operation}}{{#allParams}}{{#isEnum}}{{>innerEnum}}
{{/isEnum}}{{#items.isEnum}}{{#items}}{{>innerEnum}}{{/items}} {{/isEnum}}{{/allParams}}{{/operation}}
{{/items.isEnum}}{{/allParams}}{{/operation}}
public sealed class {{classname}}Module : NancyModule public sealed class {{classname}}Module : NancyModule
{ {
@ -17,7 +17,7 @@ namespace {{packageName}}.Module
{{httpMethod}}["{{path}}"] = parameters => {{httpMethod}}["{{path}}"] = parameters =>
{ {{#allParams}}{{#required}} { {{#allParams}}{{#required}}
if (parameters.{{paramName}} == null) { if (parameters.{{paramName}} == null) {
throw new ApiException(400, "Missing the required parameter '{{paramName}}' when calling {{operationId}}"); throw new ArgumentException("Missing the required parameter '{{paramName}}' when calling {{operationId}}");
} }
{{/required}}{{/allParams}}{{#allParams}}{{#isBodyParam}} {{/required}}{{/allParams}}{{#allParams}}{{#isBodyParam}}
var {{paramName}} = this.Bind<{{&dataType}}>(); var {{paramName}} = this.Bind<{{&dataType}}>();

View File

@ -9,13 +9,10 @@ using Sharpility.Extensions;
namespace {{packageName}}.Model namespace {{packageName}}.Model
{ {
public sealed class {{classname}}: {{#parent}}{{{parent}}}, {{/parent}} IEquatable<{{classname}}> public sealed class {{classname}}: {{#parent}}{{{parent}}}, {{/parent}} IEquatable<{{classname}}>
{ { {{#vars}}{{#isEnum}}
{{#vars}}{{#isEnum}}
{{>innerEnum}}{{/isEnum}}{{#items.isEnum}} {{>innerEnum}}{{/isEnum}}{{#items.isEnum}}
{{#items}}{{>innerEnum}}{{/items}} {{#items}}{{>innerEnum}}{{/items}}{{/items.isEnum}}{{/vars}}{{#vars}}
{{/items.isEnum}}{{/vars}}{{#vars}} public {{>nullableDataType}} {{name}} { get; private set; }{{/vars}}
public {{>nullableDataType}} {{name}} { get; private set; }
{{/vars}}
public {{classname}}({{#vars}}{{>nullableDataType}} {{name}} = null{{#hasMore}}, {{/hasMore}}{{/vars}}) public {{classname}}({{#vars}}{{>nullableDataType}} {{name}} = null{{#hasMore}}, {{/hasMore}}{{/vars}})
{ {

View File

@ -1,4 +1,3 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;