Ignore:
Timestamp:
03/24/26 23:03:39 (3 months ago)
Author:
kikisrbinoska <srbinoskakristina07@…>
Branches:
main
Children:
a7550ca
Parents:
73b69b2
Message:

Added functional collaboration between users

File:
1 edited

Legend:

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

    r73b69b2 r7fbb91c  
    11using ChapterX.Application.Collaboration.Commands;
    22using ChapterX.Application.Collaboration.Queries;
     3using ChapterX.Domain.Repositories;
    34using MediatR;
    45using Microsoft.AspNetCore.Authorization;
     
    1314    {
    1415        private readonly IMediator _mediator;
     16        private readonly ICollaborationRepository _collaborationRepository;
    1517        private readonly ILogger<CollaborationsController> _logger;
    1618
    17         public CollaborationsController(IMediator mediator, ILogger<CollaborationsController> logger)
     19        public CollaborationsController(IMediator mediator, ICollaborationRepository collaborationRepository, ILogger<CollaborationsController> logger)
    1820        {
    1921            _mediator = mediator;
     22            _collaborationRepository = collaborationRepository;
    2023            _logger = logger;
    2124        }
     
    2629        {
    2730            _logger.LogInformation("Fetching all collaborations");
    28             var response = await _mediator.Send(new GetAllRequest());
    29             return Ok(response);
     31            var collabs = await _collaborationRepository.GetAllAsync();
     32            var result = collabs.Select(c => new
     33            {
     34                id = c.Id,
     35                userId = c.UserId,
     36                storyId = c.StoryId,
     37                username = c.User != null ? c.User.Username : "",
     38                name = c.User != null ? c.User.Name : "",
     39                createdAt = c.CreatedAt,
     40            });
     41            return Ok(result);
     42        }
     43
     44        [HttpDelete("user/{userId:int}/story/{storyId:int}")]
     45        [Authorize]
     46        public async Task<ActionResult> DeleteByUserAndStory(int userId, int storyId)
     47        {
     48            var deleted = await _collaborationRepository.DeleteByUserAndStoryAsync(userId, storyId);
     49            if (!deleted) return NotFound();
     50            return Ok();
    3051        }
    3152
Note: See TracChangeset for help on using the changeset viewer.