Files
2026-02-13 15:57:28 +07:00

51 lines
1.2 KiB
Go

package server
import (
"context"
"api-service/internal/grpc/pb"
pasienHandlers "api-service/internal/handlers/pasien"
)
type PasienGRPCServer struct {
pb.UnimplementedPasienServiceServer
handler *pasienHandlers.PasienHandler
}
func NewPasienGRPCServer(handler *pasienHandlers.PasienHandler) *PasienGRPCServer {
return &PasienGRPCServer{handler: handler}
}
func (s *PasienGRPCServer) GetPasien(ctx context.Context, req *pb.GetPasienRequest) (*pb.GetPasienResponse, error) {
// Di sini idealnya kamu panggil service langsung.
// Contoh pseudo (sesuaikan dengan service asli kamu):
list, err := s.handler.Service.GetPasien(ctx, int(req.Page), int(req.Limit))
if err != nil {
return nil, err
}
out := make([]*pb.Pasien, 0, len(list))
for _, p := range list {
out = &pb.Pasien{
Nomr: p.Nomr,
Nama: p.Nama,
Umur: int32(p.Umur),
}
out = append(out, out)
}
return &pb.GetPasienResponse{Data: out}, nil
}
func (s *PasienGRPCServer) GetPasienByNomr(ctx context.Context, req *pb.GetPasienByNomrRequest) (*pb.Pasien, error) {
p, err := s.handler.Service.GetByNomr(ctx, req.Nomr)
if err != nil {
return nil, err
}
return &pb.Pasien{
Nomr: p.Nomr,
Nama: p.Nama,
Umur: int32(p.Umur),
}, nil
}