using System.Collections.Generic; using Nancy; using Nancy.Metadata.Modules; using Nancy.Metadata.Swagger.Core; using Nancy.Metadata.Swagger.Fluent; using Sony.Filtr.Globalization.v3; namespace Sony.Filtr.AdminAPI.Modules.Globalization { public class MarketGlobalizationMetadataModule : MetadataModule { public MarketGlobalizationMetadataModule() { var tag = "Market Globalization"; Describe["GetMarketGlobalizationKeys"] = description => new SwaggerRouteMetadata(description).With(c => c.WithDescription("Get all available keys", tag) .WithDefaultResponse>()); Describe["AddMarketGlobalizationKey"] = description => new SwaggerRouteMetadata(description).With(c => c.WithDescription("Add a new globalization key", tag) .WithRequestModel() .WithResponse(HttpStatusCode.Accepted, "Key has been added")); Describe["DeleteMarketGlobalizationKey"] = description => new SwaggerRouteMetadata(description).With(c => c.WithDescription("Delete an existing globalization key", tag) .WithRequestParameter("Key", loc: "query") .WithRequestParameter("context", loc: "query") .WithRequestParameter("apiConsumerId", loc: "query") .WithResponse(HttpStatusCode.Accepted, "Key has been removed") .WithResponse(HttpStatusCode.BadRequest, "Missing or invalid key specified")); Describe["GetMarketGlobalizationValues"] = description => new SwaggerRouteMetadata(description).With(c => c.WithDescription("Get all translations in the market", tag) .WithRequestParameter("countryCode", description: "Market id") .WithDefaultResponse>()); Describe["AddMarketGlobalizationValue"] = description => new SwaggerRouteMetadata(description).With(c => c.WithDescription("Add a translation for a key in the specified market", tag) .WithRequestParameter("countryCode", description: "Market id") .WithRequestModel() .WithResponse(HttpStatusCode.Accepted, "Translation has been saved") .WithResponse(HttpStatusCode.BadRequest, "Missing or invalid request parameters")); Describe["AddMarketGlobalizationValues"] = description => new SwaggerRouteMetadata(description).With(c => c.WithDescription("Add translations to multiple keys in the specified market", tag) .WithRequestParameter("countryCode", description: "Market id") .WithRequestModel() .WithResponse(HttpStatusCode.BadRequest, "Missing or invalid request parameters")); Describe["DeleteMarketGlobalizationValues"] = description => new SwaggerRouteMetadata(description).With(c => c.WithDescription("Delete the translation for the specified key", tag) .WithRequestParameter("Key", loc: "query") .WithRequestParameter("context", loc: "query") .WithRequestParameter("apiConsumerId", loc: "query") .WithRequestParameter("countryCode", description: "Market id") .WithResponse(HttpStatusCode.Accepted, "Translation has been deleted")); } } }