basic tv series endpoints added
This commit is contained in:
9
WatchIt.Common/WatchIt.Common.Model/Series/Series.cs
Normal file
9
WatchIt.Common/WatchIt.Common.Model/Series/Series.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace WatchIt.Common.Model.Series;
|
||||
|
||||
public class Series : Media.Media
|
||||
{
|
||||
[JsonPropertyName("has_ended")]
|
||||
public bool HasEnded { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using WatchIt.Common.Query;
|
||||
|
||||
namespace WatchIt.Common.Model.Series;
|
||||
|
||||
public class SeriesQueryParameters : QueryParameters<SeriesResponse>
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
[FromQuery(Name = "title")]
|
||||
public string? Title { get; set; }
|
||||
|
||||
[FromQuery(Name = "original_title")]
|
||||
public string? OriginalTitle { get; set; }
|
||||
|
||||
[FromQuery(Name = "description")]
|
||||
public string? Description { get; set; }
|
||||
|
||||
[FromQuery(Name = "release_date")]
|
||||
public DateOnly? ReleaseDate { get; set; }
|
||||
|
||||
[FromQuery(Name = "release_date_from")]
|
||||
public DateOnly? ReleaseDateFrom { get; set; }
|
||||
|
||||
[FromQuery(Name = "release_date_to")]
|
||||
public DateOnly? ReleaseDateTo { get; set; }
|
||||
|
||||
[FromQuery(Name = "length")]
|
||||
public short? Length { get; set; }
|
||||
|
||||
[FromQuery(Name = "length_from")]
|
||||
public short? LengthFrom { get; set; }
|
||||
|
||||
[FromQuery(Name = "length_to")]
|
||||
public short? LengthTo { get; set; }
|
||||
|
||||
[FromQuery(Name = "has_ended")]
|
||||
public bool? HasEnded { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region PUBLIC METHODS
|
||||
|
||||
public override bool IsMeetingConditions(SeriesResponse item) =>
|
||||
(
|
||||
TestString(item.Title, Title)
|
||||
&&
|
||||
TestString(item.OriginalTitle, OriginalTitle)
|
||||
&&
|
||||
TestString(item.Description, Description)
|
||||
&&
|
||||
TestComparable(item.ReleaseDate, ReleaseDate, ReleaseDateFrom, ReleaseDateTo)
|
||||
&&
|
||||
TestComparable(item.Length, Length, LengthFrom, LengthTo)
|
||||
&&
|
||||
TestBoolean(item.HasEnded, HasEnded)
|
||||
);
|
||||
|
||||
#endregion
|
||||
}
|
||||
59
WatchIt.Common/WatchIt.Common.Model/Series/SeriesRequest.cs
Normal file
59
WatchIt.Common/WatchIt.Common.Model/Series/SeriesRequest.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using WatchIt.Database.Model.Media;
|
||||
|
||||
namespace WatchIt.Common.Model.Series;
|
||||
|
||||
public class SeriesRequest : Series
|
||||
{
|
||||
#region CONSTRUCTORS
|
||||
|
||||
[SetsRequiredMembers]
|
||||
public SeriesRequest(SeriesResponse initData)
|
||||
{
|
||||
Title = initData.Title;
|
||||
OriginalTitle = initData.OriginalTitle;
|
||||
Description = initData.Description;
|
||||
ReleaseDate = initData.ReleaseDate;
|
||||
Length = initData.Length;
|
||||
HasEnded = initData.HasEnded;
|
||||
}
|
||||
|
||||
public SeriesRequest() {}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region PUBLIC METHODS
|
||||
|
||||
public Database.Model.Media.Media CreateMedia() => new Database.Model.Media.Media
|
||||
{
|
||||
Title = Title,
|
||||
OriginalTitle = OriginalTitle,
|
||||
Description = Description,
|
||||
ReleaseDate = ReleaseDate,
|
||||
Length = Length,
|
||||
};
|
||||
|
||||
public MediaSeries CreateMediaSeries(long id) => new MediaSeries
|
||||
{
|
||||
Id = id,
|
||||
HasEnded = HasEnded,
|
||||
};
|
||||
|
||||
public void UpdateMedia(Database.Model.Media.Media media)
|
||||
{
|
||||
media.Title = Title;
|
||||
media.OriginalTitle = OriginalTitle;
|
||||
media.Description = Description;
|
||||
media.ReleaseDate = ReleaseDate;
|
||||
media.Length = Length;
|
||||
}
|
||||
|
||||
public void UpdateMediaSeries(MediaSeries mediaSeries)
|
||||
{
|
||||
mediaSeries.HasEnded = HasEnded;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
36
WatchIt.Common/WatchIt.Common.Model/Series/SeriesResponse.cs
Normal file
36
WatchIt.Common/WatchIt.Common.Model/Series/SeriesResponse.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text.Json.Serialization;
|
||||
using WatchIt.Database.Model.Media;
|
||||
|
||||
namespace WatchIt.Common.Model.Series;
|
||||
|
||||
public class SeriesResponse : Series
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
[JsonPropertyName("id")]
|
||||
public long Id { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region CONSTRUCTORS
|
||||
|
||||
[JsonConstructor]
|
||||
public SeriesResponse() {}
|
||||
|
||||
[SetsRequiredMembers]
|
||||
public SeriesResponse(MediaSeries mediaSeries)
|
||||
{
|
||||
Id = mediaSeries.Media.Id;
|
||||
Title = mediaSeries.Media.Title;
|
||||
OriginalTitle = mediaSeries.Media.OriginalTitle;
|
||||
Description = mediaSeries.Media.Description;
|
||||
ReleaseDate = mediaSeries.Media.ReleaseDate;
|
||||
Length = mediaSeries.Media.Length;
|
||||
HasEnded = mediaSeries.HasEnded;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user