public async Task <FriendsRelationDto> AddRelationAsync(Guid userId, FriendsRelationToAddDto friendRelation) { _logger.LogDebug("Trying to add friends relation {friendRelation}.", friendRelation); if (friendRelation is null) { throw new ArgumentNullException(nameof(PostReaction)); } if (friendRelation.FriendId == Guid.Empty || userId == Guid.Empty) { throw new ArgumentNullException(nameof(Guid)); } try { var relationToAdd = _mapper.Map <FriendsRelation>(friendRelation); relationToAdd.UserId = userId; var addedRelation = await _friendsRelationRepository.AddAsync(relationToAdd); await _friendsRelationRepository.SaveAsync(); return(_mapper.Map <FriendsRelationDto>(addedRelation)); } catch (Exception ex) { _logger.LogError(ex, "Error occured during adding the relation."); throw; } }
public async Task <ActionResult <FriendsRelationDto> > AddRelation(string userId, FriendsRelationToAddDto relationToAdd) { try { if (Guid.TryParse(userId, out Guid gUserId)) { if (await _userService.CheckIfUserExists(gUserId) && await _userService.CheckIfUserExists(relationToAdd.FriendId)) { FriendsRelationDto addedRealtion = await _relationService.AddRelationAsync(gUserId, relationToAdd); return(CreatedAtRoute("GetRelation", new { userId, friendId = addedRealtion.FriendId }, addedRealtion)); } else { return(NotFound($"User: {userId} or friend: {relationToAdd.FriendId} not found.")); } } else { return(BadRequest($"{userId} is not valid guid.")); } } catch (Exception ex) { _logger.LogError(ex, "Error occured during adding the user relation. User id: {user}, friend id {FriendId}", userId, relationToAdd.FriendId); return(StatusCode(StatusCodes.Status500InternalServerError)); } }
public FriendsRelationsControllerAddRelationTests() : base() { _relationToAdd = _fixture.Create <FriendsRelationToAddDto>(); }