using System.Collections.Generic; using System.Linq; using Nancy; using Nancy.Metadata.Modules; using Nancy.Metadata.Swagger.Core; using Nancy.Metadata.Swagger.Fluent; using Sony.Filtr.Applications; using Sony.Filtr.Core.AdStats; using Sony.Filtr.Core.InfluentialPlaylists; using Sony.Filtr.SpotifyWebAPI; namespace Sony.Filtr.AdminAPI.Modules.Stats { public class InfluentialPlaylistMetadataModule : MetadataModule { public InfluentialPlaylistMetadataModule() { Describe["UploadInfluentialPlaylists"] = description => new SwaggerRouteMetadata(description).With(c => c.WithDescription("Upload Influential playlists file", "Influental Playlists") .WithRequestParameter("ImportFile", description: "AdStatsFile", loc: "body") .WithRequestParameter("year", type: "integer") .WithRequestParameter("month", type: "integer") .WithResponse(HttpStatusCode.Accepted, "File has been uploaded")); Describe["GetInfluentialPlaylistMarkets"] = description => new SwaggerRouteMetadata(description).With(c => c.WithDescription("Get influential playlist markets", "Influental Playlists") .WithDefaultResponse>()); Describe["GetInfluentialPlaylistDates"] = description => new SwaggerRouteMetadata(description).With(c => c.WithRequestParameter("market", description: "Market") .WithDescription("Get influential playlist dates for specified market", "Influental Playlists") .WithDefaultResponse>()); Describe["GetInfluentialPlaylistCharts"] = description => new SwaggerRouteMetadata(description).With(c => c.WithRequestParameter("market", description: "Market") .WithDescription("Get latest influential playlist stats", "Influental Playlists") .WithDefaultResponse>()); Describe["GetInfluentialPlaylistChartsForYear"] = description => new SwaggerRouteMetadata(description).With(c => c.WithRequestParameter("market", description: "Market") .WithRequestParameter("year", description: "Year") .WithRequestParameter("month", description: "Month") .WithDescription("Get influential playlist stats for specified date", "Influental Playlists") .WithDefaultResponse>()); } } }