/// <summary> /// Updates the status of a follow request. /// </summary> /// <remarks> /// This throws a <see cref="NotAllowedException"/> /// if the current user id is not equal to either /// the requester or the receiver id. /// </remarks> /// <param name="id">The follow request id.</param> /// <param name="status">The new status.</param> public async Task UpdateStatusAsync(FollowRequestId id, FollowRequestStatus status) { if (id is null) { throw new ArgumentNullException(nameof(id)); } if (!AppContext.HasUser || (!AppContext.IsUser(id.RequesterId) && !AppContext.IsUser(id.ReceiverId))) { throw new NotAllowedException(); } var sql = @" UPDATE application.follow_request AS fr SET follow_request_status = @follow_request_status WHERE fr.receiver_id = @receiver_id AND fr.requester_id = @requester_id"; await using var context = await CreateNewDatabaseContext(sql); context.AddParameterWithValue("follow_request_status", status); context.AddParameterWithValue("receiver_id", id.ReceiverId); context.AddParameterWithValue("requester_id", id.RequesterId); await context.NonQueryAsync(hasRowGuard : false); // No-op }
public FriendDto(int frienderId, int friendeeId) { FrienderId = frienderId; FriendeeId = friendeeId; FriendRequestStatus = FriendRequestStatus.Pending; FollowRequestStatus = FollowRequestStatus.Uninitiated; }
public FriendDto(Friend friend) { this.Id = friend.Id; this.FriendeeId = friend.Friendee.Id; this.FrienderId = friend.Friender.Id; this.FriendRequestStatus = friend.FriendRequestStatus; this.FollowRequestStatus = friend.FollowRequestStatus; }
public Friend() { FriendRequestStatus = FriendRequestStatus.Pending; FollowRequestStatus = FollowRequestStatus.Uninitiated; }
public Task UpdateStatusAsync(FollowRequestId id, FollowRequestStatus status) => throw new NotImplementedException();