using System.Linq; using Nancy; using Nancy.ModelBinding; using Sony.Filtr.Applications; using Sony.Filtr.Contracts.Entities; using Sony.Filtr.Core.EditorialPlaylists; namespace Sony.Filtr.AdminAPI.Modules.EditorialPlaylist { public class PlaylistCategoryIconModule : BaseModule { public PlaylistCategoryIconModule(PlaylistCategoryManager playlistCategoryManager, ApplicationInstanceManager applicationInstanceManager) : base(applicationInstanceManager) { Get["GetPlaylistCategoryIcons", "/playlistcategoryicons"] = parameters => { return Response.AsJson(playlistCategoryManager.GetIcons()); }; Get["GetSinglePlaylistCategoryIcon", "/playlistcategoryicons/{id}"] = parameters => { int iconId; if (!int.TryParse((string)parameters.id, out iconId)) return HttpStatusCode.BadRequest; var icon = playlistCategoryManager.GetIcon(iconId); if (icon == null) return HttpStatusCode.NotFound; return Response.AsJson(icon); }; Post["AddPlaylistCategoryIcon", "/playlistcategoryicons"] = parameters => { PlaylistCategoryIcon icon = this.Bind(); if (icon.ID != 0 || string.IsNullOrEmpty(icon.SVGMarkup) || string.IsNullOrEmpty(icon.Name)) return HttpStatusCode.BadRequest; var addedIcon = playlistCategoryManager.SaveIcon(icon); return Response.AsJson(addedIcon); }; Put["UpdatePlaylistCategoryIcon", "/playlistcategoryicons/{id}"] = parameters => { PlaylistCategoryIcon icon = this.Bind(); if (string.IsNullOrEmpty(icon.SVGMarkup) || string.IsNullOrEmpty(icon.Name)) return HttpStatusCode.BadRequest; int iconId; if (!int.TryParse((string)parameters.id, out iconId)) return HttpStatusCode.BadRequest; var existingIcon = playlistCategoryManager.GetIcon(iconId); if (existingIcon == null) return HttpStatusCode.NotFound; icon.ID = iconId; var addedIcon = playlistCategoryManager.SaveIcon(icon); return Response.AsJson(addedIcon); }; Delete["DeletePlaylistCategoryIcon", "/playlistcategoryicons/{id}"] = parameters => { int iconId; if (!int.TryParse((string) parameters.id, out iconId)) return HttpStatusCode.BadRequest; var existingIcon = playlistCategoryManager.GetIcon(iconId); if (existingIcon == null) return HttpStatusCode.NotFound; playlistCategoryManager.DeleteIcon(existingIcon); return HttpStatusCode.Accepted; }; } } }