Changeset 73b69b2 for ChapterX.API/Controllers/ReadingListsController.cs
- Timestamp:
- 03/24/26 22:13:36 (3 months ago)
- Branches:
- main
- Children:
- 7fbb91c
- Parents:
- acf690c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ChapterX.API/Controllers/ReadingListsController.cs
racf690c r73b69b2 1 1 using ChapterX.Application.ReadingList.Commands; 2 2 using ChapterX.Application.ReadingList.Queries; 3 using ChapterX.Domain.Repositories; 3 4 using MediatR; 4 5 using Microsoft.AspNetCore.Authorization; … … 13 14 { 14 15 private readonly IMediator _mediator; 16 private readonly IReadingListRepository _readingListRepository; 15 17 private readonly ILogger<ReadingListsController> _logger; 16 18 17 public ReadingListsController(IMediator mediator, I Logger<ReadingListsController> logger)19 public ReadingListsController(IMediator mediator, IReadingListRepository readingListRepository, ILogger<ReadingListsController> logger) 18 20 { 19 21 _mediator = mediator; 22 _readingListRepository = readingListRepository; 20 23 _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); 21 34 } 22 35 … … 26 39 { 27 40 _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); 30 44 } 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 }; 31 65 32 66 [HttpGet("{id:int}")]
Note:
See TracChangeset
for help on using the changeset viewer.
