using Nancy; using Sony.Filtr.Applications; using Sony.Filtr.Core.SpotifyRegion; namespace Sony.Filtr.AdminAPI.Modules.SpotifySpecific { public class SpotifyRegionModule : BaseModule { public SpotifyRegionModule(SpotifyRegionManager spotifyRegionManager, ApplicationInstanceManager applicationInstanceManager) : base(applicationInstanceManager) { Get["GetSpotifyRegions", "/spotifyRegions", true] = async (parameters, cx) => { var regions = await spotifyRegionManager.GetAvailableRegionsAsync(); return Response.AsJson(regions); }; Put["AddSpotifyRegion", "/spotifyRegions/{region}", true ] = async (parameters, cx) => { var region = (string)parameters.region; if (string.IsNullOrWhiteSpace(region)) return HttpStatusCode.BadRequest; region = region.ToLowerInvariant(); await spotifyRegionManager.AddRegionAsync(region); return Response.AsJson(region); }; Delete["DeleteSpotifyRegion", "/spotifyRegions/{region}", true] = async (parameters, cx) => { var region = (string)parameters.region; if (string.IsNullOrWhiteSpace(region)) return HttpStatusCode.BadRequest; await spotifyRegionManager.DeleteRegionAsync(region); return HttpStatusCode.NoContent; }; } } }