From 2109a3c1a4733e198fa86879e8a3ad47719afac9 Mon Sep 17 00:00:00 2001 From: Lawrence Angrave Date: Mon, 11 Dec 2023 22:00:43 -0600 Subject: [PATCH] NewPlaylistUpdateDTO --- .../Controllers/PlaylistsController.cs | 16 +++++--- .../PlaylistsControllerTest.cs | 37 +++++++++++-------- 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/ClassTranscribeServer/Controllers/PlaylistsController.cs b/ClassTranscribeServer/Controllers/PlaylistsController.cs index ae64c2d..a66ad31 100644 --- a/ClassTranscribeServer/Controllers/PlaylistsController.cs +++ b/ClassTranscribeServer/Controllers/PlaylistsController.cs @@ -337,16 +337,16 @@ public async Task PutPlaylistOptions(string id, JObject options) // PUT: api/Playlists/5 [HttpPut("{id}")] [Authorize] - public async Task PutPlaylist(string id, Playlist playlist) + public async Task PutPlaylist(string id, PlaylistUpdateDTO playlist) { if (playlist == null || playlist.Id == null || id != playlist.Id || playlist.OfferingId == null) { - return BadRequest(); + return BadRequest("Validation checks"); } var offering = await _context.Offerings.FindAsync(playlist.OfferingId); if (offering == null) { - return BadRequest(); + return BadRequest("No such offering"); } var authorizationResult = await _authorizationService.AuthorizeAsync(this.User, offering, Globals.POLICY_UPDATE_OFFERING); if (!authorizationResult.Succeeded) @@ -361,7 +361,7 @@ public async Task PutPlaylist(string id, Playlist playlist) var p = await _context.Playlists.FindAsync(playlist.Id); p.Name = playlist.Name; - p.Options = playlist.Options; + p.setOptionsAsJson(playlist.Options); p.PublishStatus = playlist.PublishStatus; try @@ -528,7 +528,13 @@ public class TranscriptionDTO public String SourceLabel { get; set; } // where did this transcription originate? public string Language { get; set; } } - + public class PlaylistUpdateDTO { + public string Id { get; set; } + public string OfferingId { get; set; } + public string Name { get; set; } + public JObject Options { get; set; } + public PublishStatus PublishStatus { get; set; } + } public class PlaylistDTO { public string Id { get; set; } diff --git a/UnitTests/ClassTranscribeServer/ControllerTests/PlaylistsControllerTest.cs b/UnitTests/ClassTranscribeServer/ControllerTests/PlaylistsControllerTest.cs index d85b8b1..3d0b3b5 100644 --- a/UnitTests/ClassTranscribeServer/ControllerTests/PlaylistsControllerTest.cs +++ b/UnitTests/ClassTranscribeServer/ControllerTests/PlaylistsControllerTest.cs @@ -2,6 +2,7 @@ using ClassTranscribeServer; using ClassTranscribeServer.Controllers; using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; @@ -277,39 +278,45 @@ public async Task Put_Playlist_Success() _context.Offerings.Add(new Offering { Id = offeringId }); _context.Playlists.Add(playlist); _context.SaveChanges(); - - playlist.SourceType = SourceType.Kaltura; - playlist.Name = "bar"; - playlist.Index = 13; - - var result = await _controller.PutPlaylist(playlist.Id, playlist); + var update = new PlaylistUpdateDTO + { + Id = playlist.Id, + OfferingId = playlist.OfferingId, + Name = "bart", + Options = JObject.Parse("{\"a\":\"b\"}"), + PublishStatus = PublishStatus.NotPublished + }; + var result = await _controller.PutPlaylist(playlist.Id, update); Assert.IsType(result); var updatedPlaylist = _context.Playlists.Find(playlist.Id); - Assert.Equal(playlist, updatedPlaylist); + Assert.Equal(update.Name, updatedPlaylist.Name); + Assert.Equal(update.PublishStatus, updatedPlaylist.PublishStatus); + Assert.Equal(update.Options, updatedPlaylist.getOptionsAsJson()); + Assert.Equal(playlist.SourceType, updatedPlaylist.SourceType); } [Fact] public async Task Put_Playlist_Fail() { - var result = await _controller.PutPlaylist("none", new Playlist()); - Assert.IsType(result); + var result = await _controller.PutPlaylist("none", new PlaylistUpdateDTO()); + Assert.IsType(result); - result = await _controller.PutPlaylist(null, new Playlist()); - Assert.IsType(result); + result = await _controller.PutPlaylist(null, new PlaylistUpdateDTO()); + Assert.IsType(result); result = await _controller.PutPlaylist("none", null); - Assert.IsType(result); + Assert.IsType(result); result = await _controller.PutPlaylist(null, null); - Assert.IsType(result); + Assert.IsType(result); var playlistId = "playlist"; _context.Playlists.Add(new Playlist { Id = playlistId, OfferingId = "none" }); _context.SaveChanges(); - result = await _controller.PutPlaylist(playlistId, new Playlist { Id = playlistId, OfferingId = "hiya" }); - Assert.IsType(result); + result = await _controller.PutPlaylist(playlistId, new PlaylistUpdateDTO { Id = playlistId, OfferingId = "hiya" }); + Assert.IsType(result); } [Fact]