Ignore:
Timestamp:
03/24/26 22:13:36 (3 months ago)
Author:
kikisrbinoska <srbinoskakristina07@…>
Branches:
main
Children:
7fbb91c
Parents:
acf690c
Message:

Fixed reading lists,comments and likes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ChapterX.API/Controllers/ReadingListsController.cs

    racf690c r73b69b2  
    11using ChapterX.Application.ReadingList.Commands;
    22using ChapterX.Application.ReadingList.Queries;
     3using ChapterX.Domain.Repositories;
    34using MediatR;
    45using Microsoft.AspNetCore.Authorization;
     
    1314    {
    1415        private readonly IMediator _mediator;
     16        private readonly IReadingListRepository _readingListRepository;
    1517        private readonly ILogger<ReadingListsController> _logger;
    1618
    17         public ReadingListsController(IMediator mediator, ILogger<ReadingListsController> logger)
     19        public ReadingListsController(IMediator mediator, IReadingListRepository readingListRepository, ILogger<ReadingListsController> logger)
    1820        {
    1921            _mediator = mediator;
     22            _readingListRepository = readingListRepository;
    2023            _logger = logger;
     24        }
     25
     26        [HttpGet("user/{userId:int}")]
     27        [Authorize]
     28        public async Task<ActionResult> GetByUser(int userId)
     29        {
     30            _logger.LogInformation("Fetching reading lists for user {UserId}", userId);
     31            var lists = await _readingListRepository.GetByUserIdAsync(userId);
     32            var result = lists.Select(l => MapList(l));
     33            return Ok(result);
    2134        }
    2235
     
    2639        {
    2740            _logger.LogInformation("Fetching all reading lists");
    28             var response = await _mediator.Send(new GetAllRequest());
    29             return Ok(response);
     41            var lists = await _readingListRepository.GetAllAsync();
     42            var result = lists.Select(l => MapList(l));
     43            return Ok(result);
    3044        }
     45
     46        private static object MapList(Domain.Entities.ReadingList l) => new
     47        {
     48            id = l.Id,
     49            name = l.Name,
     50            content = l.Content,
     51            isPublic = l.IsPublic,
     52            userId = l.UserId,
     53            createdAt = l.CreatedAt,
     54            username = l.User?.Username ?? "",
     55            readingListItems = l.ReadingListItems.Select(i => new
     56            {
     57                listId = i.ListId,
     58                storyId = i.StoryId,
     59                addedAt = i.AddedAt,
     60                storyTitle = i.Story?.ShortDescription ?? "",
     61                authorUsername = i.Story?.Writer?.User?.Username ?? "",
     62                genres = i.Story?.HasGenres.Select(hg => hg.Genre?.Name).Where(n => n != null).ToList() ?? []
     63            }).ToList()
     64        };
    3165
    3266        [HttpGet("{id:int}")]
Note: See TracChangeset for help on using the changeset viewer.