51 lines
1.2 KiB
Go
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
|
|
}
|