roles rating endpoints added
This commit is contained in:
@@ -125,29 +125,17 @@ public class MediaControllerService(DatabaseContext database, IUserService userS
|
||||
|
||||
public async Task<RequestResult> GetMediaRatingByUser(long mediaId, long userId)
|
||||
{
|
||||
Database.Model.Media.Media? item = await database.Media.FirstOrDefaultAsync(x => x.Id == mediaId);
|
||||
if (item is null)
|
||||
RatingMedia? rating = await database.RatingsMedia.FirstOrDefaultAsync(x => x.MediaId == mediaId && x.AccountId == userId);
|
||||
if (rating is null)
|
||||
{
|
||||
return RequestResult.NotFound();
|
||||
}
|
||||
|
||||
short? rating = item.RatingMedia.FirstOrDefault(x => x.AccountId == userId)?.Rating;
|
||||
if (!rating.HasValue)
|
||||
{
|
||||
return RequestResult.NotFound();
|
||||
}
|
||||
|
||||
return RequestResult.Ok(rating.Value);
|
||||
return RequestResult.Ok(rating.Rating);
|
||||
}
|
||||
|
||||
public async Task<RequestResult> PutMediaRating(long mediaId, RatingRequest data)
|
||||
{
|
||||
short ratingValue = data.Rating;
|
||||
if (ratingValue < 1 || ratingValue > 10)
|
||||
{
|
||||
return RequestResult.BadRequest();
|
||||
}
|
||||
|
||||
Database.Model.Media.Media? item = await database.Media.FirstOrDefaultAsync(x => x.Id == mediaId);
|
||||
if (item is null)
|
||||
{
|
||||
@@ -159,7 +147,7 @@ public class MediaControllerService(DatabaseContext database, IUserService userS
|
||||
RatingMedia? rating = item.RatingMedia.FirstOrDefault(x => x.AccountId == userId);
|
||||
if (rating is not null)
|
||||
{
|
||||
rating.Rating = ratingValue;
|
||||
rating.Rating = data.Rating;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -167,7 +155,7 @@ public class MediaControllerService(DatabaseContext database, IUserService userS
|
||||
{
|
||||
AccountId = userId,
|
||||
MediaId = mediaId,
|
||||
Rating = ratingValue
|
||||
Rating = data.Rating
|
||||
};
|
||||
await database.RatingsMedia.AddAsync(rating);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using WatchIt.Common.Model.Rating;
|
||||
using WatchIt.Common.Model.Roles;
|
||||
using WatchIt.WebAPI.Services.Controllers.Common;
|
||||
|
||||
@@ -8,6 +9,10 @@ public interface IRolesControllerService
|
||||
Task<RequestResult> GetActorRole(Guid id);
|
||||
Task<RequestResult> PutActorRole(Guid id, ActorRoleUniversalRequest data);
|
||||
Task<RequestResult> DeleteActorRole(Guid id);
|
||||
Task<RequestResult> GetActorRoleRating(Guid id);
|
||||
Task<RequestResult> GetActorRoleRatingByUser(Guid id, long userId);
|
||||
Task<RequestResult> PutActorRoleRating(Guid id, RatingRequest data);
|
||||
Task<RequestResult> DeleteActorRoleRating(Guid id);
|
||||
Task<RequestResult> GetAllActorRoleTypes(RoleTypeQueryParameters query);
|
||||
Task<RequestResult> GetActorRoleType(short typeId);
|
||||
Task<RequestResult> PostActorRoleType(RoleTypeRequest data);
|
||||
@@ -16,6 +21,10 @@ public interface IRolesControllerService
|
||||
Task<RequestResult> GetCreatorRole(Guid id);
|
||||
Task<RequestResult> PutCreatorRole(Guid id, CreatorRoleUniversalRequest data);
|
||||
Task<RequestResult> DeleteCreatorRole(Guid id);
|
||||
Task<RequestResult> GetCreatorRoleRating(Guid id);
|
||||
Task<RequestResult> GetCreatorRoleRatingByUser(Guid id, long userId);
|
||||
Task<RequestResult> PutCreatorRoleRating(Guid id, RatingRequest data);
|
||||
Task<RequestResult> DeleteCreatorRoleRating(Guid id);
|
||||
Task<RequestResult> GetAllCreatorRoleTypes(RoleTypeQueryParameters query);
|
||||
Task<RequestResult> GetCreatorRoleType(short typeId);
|
||||
Task<RequestResult> PostCreatorRoleType(RoleTypeRequest data);
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using WatchIt.Common.Model.Rating;
|
||||
using WatchIt.Common.Model.Roles;
|
||||
using WatchIt.Database;
|
||||
using WatchIt.Database.Model.Person;
|
||||
using WatchIt.Database.Model.Rating;
|
||||
using WatchIt.WebAPI.Services.Controllers.Common;
|
||||
using WatchIt.WebAPI.Services.Utility.User;
|
||||
|
||||
@@ -87,6 +89,77 @@ public class RolesControllerService : IRolesControllerService
|
||||
return RequestResult.NoContent();
|
||||
}
|
||||
|
||||
public async Task<RequestResult> GetActorRoleRating(Guid id)
|
||||
{
|
||||
PersonActorRole? item = await _database.PersonActorRoles.FirstOrDefaultAsync(x => x.Id == id);
|
||||
if (item is null)
|
||||
{
|
||||
return RequestResult.NotFound();
|
||||
}
|
||||
|
||||
RatingResponse ratingResponse = RatingResponse.Create(item.RatingPersonActorRole);
|
||||
|
||||
return RequestResult.Ok(ratingResponse);
|
||||
}
|
||||
|
||||
public async Task<RequestResult> GetActorRoleRatingByUser(Guid id, long userId)
|
||||
{
|
||||
RatingPersonActorRole? rating = await _database.RatingsPersonActorRole.FirstOrDefaultAsync(x => x.PersonActorRoleId == id && x.AccountId == userId);
|
||||
if (rating is null)
|
||||
{
|
||||
return RequestResult.NotFound();
|
||||
}
|
||||
|
||||
return RequestResult.Ok(rating.Rating);
|
||||
}
|
||||
|
||||
public async Task<RequestResult> PutActorRoleRating(Guid id, RatingRequest data)
|
||||
{
|
||||
PersonActorRole? item = await _database.PersonActorRoles.FirstOrDefaultAsync(x => x.Id == id);
|
||||
if (item is null)
|
||||
{
|
||||
return RequestResult.NotFound();
|
||||
}
|
||||
|
||||
long userId = _userService.GetUserId();
|
||||
|
||||
RatingPersonActorRole? rating = item.RatingPersonActorRole.FirstOrDefault(x => x.AccountId == userId);
|
||||
if (rating is not null)
|
||||
{
|
||||
rating.Rating = data.Rating;
|
||||
}
|
||||
else
|
||||
{
|
||||
rating = new RatingPersonActorRole
|
||||
{
|
||||
AccountId = userId,
|
||||
PersonActorRoleId = id,
|
||||
Rating = data.Rating
|
||||
};
|
||||
await _database.RatingsPersonActorRole.AddAsync(rating);
|
||||
}
|
||||
await _database.SaveChangesAsync();
|
||||
|
||||
return RequestResult.Ok();
|
||||
}
|
||||
|
||||
public async Task<RequestResult> DeleteActorRoleRating(Guid id)
|
||||
{
|
||||
long userId = _userService.GetUserId();
|
||||
|
||||
RatingPersonActorRole? item = await _database.RatingsPersonActorRole.FirstOrDefaultAsync(x => x.PersonActorRoleId == id && x.AccountId == userId);
|
||||
if (item is null)
|
||||
{
|
||||
return RequestResult.Ok();
|
||||
}
|
||||
|
||||
_database.RatingsPersonActorRole.Attach(item);
|
||||
_database.RatingsPersonActorRole.Remove(item);
|
||||
await _database.SaveChangesAsync();
|
||||
|
||||
return RequestResult.Ok();
|
||||
}
|
||||
|
||||
public async Task<RequestResult> GetAllActorRoleTypes(RoleTypeQueryParameters query)
|
||||
{
|
||||
IEnumerable<PersonActorRoleType> rawData = await _database.PersonActorRoleTypes.ToListAsync();
|
||||
@@ -200,6 +273,77 @@ public class RolesControllerService : IRolesControllerService
|
||||
return RequestResult.NoContent();
|
||||
}
|
||||
|
||||
public async Task<RequestResult> GetCreatorRoleRating(Guid id)
|
||||
{
|
||||
PersonCreatorRole? item = await _database.PersonCreatorRoles.FirstOrDefaultAsync(x => x.Id == id);
|
||||
if (item is null)
|
||||
{
|
||||
return RequestResult.NotFound();
|
||||
}
|
||||
|
||||
RatingResponse ratingResponse = RatingResponse.Create(item.RatingPersonCreatorRole);
|
||||
|
||||
return RequestResult.Ok(ratingResponse);
|
||||
}
|
||||
|
||||
public async Task<RequestResult> GetCreatorRoleRatingByUser(Guid id, long userId)
|
||||
{
|
||||
RatingPersonCreatorRole? rating = await _database.RatingsPersonCreatorRole.FirstOrDefaultAsync(x => x.PersonCreatorRoleId == id && x.AccountId == userId);
|
||||
if (rating is null)
|
||||
{
|
||||
return RequestResult.NotFound();
|
||||
}
|
||||
|
||||
return RequestResult.Ok(rating.Rating);
|
||||
}
|
||||
|
||||
public async Task<RequestResult> PutCreatorRoleRating(Guid id, RatingRequest data)
|
||||
{
|
||||
PersonCreatorRole? item = await _database.PersonCreatorRoles.FirstOrDefaultAsync(x => x.Id == id);
|
||||
if (item is null)
|
||||
{
|
||||
return RequestResult.NotFound();
|
||||
}
|
||||
|
||||
long userId = _userService.GetUserId();
|
||||
|
||||
RatingPersonCreatorRole? rating = item.RatingPersonCreatorRole.FirstOrDefault(x => x.AccountId == userId);
|
||||
if (rating is not null)
|
||||
{
|
||||
rating.Rating = data.Rating;
|
||||
}
|
||||
else
|
||||
{
|
||||
rating = new RatingPersonCreatorRole
|
||||
{
|
||||
AccountId = userId,
|
||||
PersonCreatorRoleId = id,
|
||||
Rating = data.Rating
|
||||
};
|
||||
await _database.RatingsPersonCreatorRole.AddAsync(rating);
|
||||
}
|
||||
await _database.SaveChangesAsync();
|
||||
|
||||
return RequestResult.Ok();
|
||||
}
|
||||
|
||||
public async Task<RequestResult> DeleteCreatorRoleRating(Guid id)
|
||||
{
|
||||
long userId = _userService.GetUserId();
|
||||
|
||||
RatingPersonCreatorRole? item = await _database.RatingsPersonCreatorRole.FirstOrDefaultAsync(x => x.PersonCreatorRoleId == id && x.AccountId == userId);
|
||||
if (item is null)
|
||||
{
|
||||
return RequestResult.Ok();
|
||||
}
|
||||
|
||||
_database.RatingsPersonCreatorRole.Attach(item);
|
||||
_database.RatingsPersonCreatorRole.Remove(item);
|
||||
await _database.SaveChangesAsync();
|
||||
|
||||
return RequestResult.Ok();
|
||||
}
|
||||
|
||||
public async Task<RequestResult> GetAllCreatorRoleTypes(RoleTypeQueryParameters query)
|
||||
{
|
||||
IEnumerable<PersonCreatorRoleType> rawData = await _database.PersonCreatorRoleTypes.ToListAsync();
|
||||
|
||||
Reference in New Issue
Block a user