friends/grpc/accept_friend_request.go
2025-02-15 23:31:32 -05:00

40 lines
1.1 KiB
Go

package grpc
import (
"context"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"github.com/PretendoNetwork/friends/database"
database_wiiu "github.com/PretendoNetwork/friends/database/wiiu"
"github.com/PretendoNetwork/friends/globals"
pb "github.com/PretendoNetwork/grpc-go/friends"
)
func (s *gRPCFriendsServer) AcceptFriendRequest(ctx context.Context, in *pb.AcceptFriendRequestRequest) (*pb.AcceptFriendRequestResponse, error) {
_, err := database_wiiu.AcceptFriendRequestAndReturnFriendInfo(in.GetFriendRequestId())
if err != nil {
if err == database.ErrFriendRequestNotFound {
return &pb.AcceptFriendRequestResponse{
Success: false,
}, status.Errorf(codes.NotFound, "friend request not found")
}
if err == database.ErrPIDNotFound {
return &pb.AcceptFriendRequestResponse{
Success: false,
}, status.Errorf(codes.FailedPrecondition, "friend request has invalid PID")
}
globals.Logger.Critical(err.Error())
return &pb.AcceptFriendRequestResponse{
Success: false,
}, status.Errorf(codes.Internal, "internal server error")
}
return &pb.AcceptFriendRequestResponse{
Success: err == nil,
}, nil
}