public async Task <IActionResult> Submit([FromBody] PostModActionDTO modAction,
                                             [FromServices] PostService postService)
    {
        Post post  = postService.GetPost(modAction.PostId);
        uint modId = uint.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier));

        if ((post.AuthorId == modId || post.PlayerId == modId) && !User.IsInRole(ApiRoles.Administrator))
        {
            return(StatusCode(403, $"CMs cannot act on Posts with relation to self. This restriction is lifted for users with {ApiRoles.Administrator} role."));
        }

        await _service.SubmitPostModActionAsync(modAction with {
            ModId = modId
        });

        return(StatusCode(202));
    }
    public async Task SubmitPostModActionAsync(PostModActionDTO modAction)
    {
        EntityEntry <PostModAction> entityEntry = await _context.PostModActions.AddAsync(modAction.Adapt <PostModAction>());

        switch (modAction.ActionType)
        {
        case ModActionType.Deletion:
            await _postService.DeletePostAsync(modAction.PostId, true);

            await _notifications.SendNewNotification(PostModDeletedNotification.FromModAction(entityEntry.Entity));

            break;

        case ModActionType.Update:
            PlayerPostDTO current = _postService.GetPost(modAction.PostId).Adapt <PlayerPostDTO>();

            await _postService.EditPostAsync(modAction.PostId, current with
            {
                Content = modAction.UpdatedPost.Content ?? current.Content,
                Flairs  = modAction.UpdatedPost.Flairs
            });

            break;
        }