Ignore:
Timestamp:
06/24/26 16:28:50 (11 days ago)
Author:
kikisrbinoska <srbinoskakristina07@…>
Branches:
main
Children:
a8f4a2d
Parents:
0b502c2
Message:

Fixed writer section and admin management

File:
1 edited

Legend:

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

    r0b502c2 r99c1e45  
    2929            _logger.LogInformation("Fetching all stories");
    3030            var response = await _mediator.Send(request);
    31             return Ok(response);
     31            var stories = response.Stories.Select(s => new
     32            {
     33                id = s.Id,
     34                userId = s.UserId,
     35                title = s.Title,
     36                shortDescription = s.ShortDescription,
     37                image = s.Image,
     38                content = s.Content,
     39                matureContent = s.MatureContent,
     40                createdAt = s.CreatedAt,
     41                updatedAt = s.UpdatedAt,
     42                writer = s.Writer == null ? null : new { user = s.Writer.User == null ? null : new { username = s.Writer.User.Username } },
     43                hasGenres = s.HasGenres.Select(hg => new { genre = new { name = hg.Genre?.Name ?? "" } }),
     44                likes = s.Likes.Select(l => new { userId = l.UserId }),
     45                comments = s.Comments.Select(c => new { id = c.Id }),
     46                chapters = s.Chapters.Select(c => new { id = c.Id, viewCount = c.ViewCount }),
     47            });
     48            return Ok(new { stories });
    3249        }
    3350
     
    3956            _logger.LogInformation("Fetching story with ID: {StoryId}", id);
    4057            var response = await _mediator.Send(new GetRequest(id));
    41             return Ok(response);
     58            if (response.Story == null) return NotFound();
     59            var s = response.Story;
     60            return Ok(new
     61            {
     62                id = s.Id,
     63                userId = s.UserId,
     64                title = s.Title,
     65                shortDescription = s.ShortDescription,
     66                image = s.Image,
     67                content = s.Content,
     68                matureContent = s.MatureContent,
     69                createdAt = s.CreatedAt,
     70                updatedAt = s.UpdatedAt,
     71                writer = s.Writer == null ? null : new { user = s.Writer.User == null ? null : new { username = s.Writer.User.Username } },
     72                hasGenres = s.HasGenres.Select(hg => new { genre = new { name = hg.Genre?.Name ?? "" } }),
     73                likes = s.Likes.Select(l => new { userId = l.UserId }),
     74                comments = s.Comments.Select(c => new { id = c.Id }),
     75                chapters = s.Chapters.Select(c => new { id = c.Id, viewCount = c.ViewCount }),
     76            });
    4277        }
    4378
     
    76111            _logger.LogInformation("Deleting story with ID: {StoryId}", id);
    77112            var callerId = int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier)!);
    78             var response = await _mediator.Send(new DeleteRequest(id, callerId));
     113            var isAdmin = User.IsInRole("Admin");
     114            var response = await _mediator.Send(new DeleteRequest(id, callerId, isAdmin));
    79115            return Ok(response);
    80116        }
Note: See TracChangeset for help on using the changeset viewer.