first commit

This commit is contained in:
2026-02-13 15:57:28 +07:00
parent d4248b62e1
commit 7ae8c76a20
26 changed files with 5040 additions and 32 deletions
+26
View File
@@ -0,0 +1,26 @@
package server
import (
"fmt"
"log"
"net"
"api-service/internal/config"
"api-service/internal/grpc/pb"
pasienHandlers "api-service/internal/handlers/pasien"
"google.golang.org/grpc"
)
func RunGRPCServer(cfg *config.Config, pasienHandler *pasienHandlers.PasienHandler) error {
lis, err := net.Listen("tcp", fmt.Sprintf(":%d", cfg.GRPC.Port))
if err != nil {
return err
}
s := grpc.NewServer()
pb.RegisterPasienServiceServer(s, NewPasienGRPCServer(pasienHandler))
log.Printf("gRPC server listening on :%d", cfg.GRPC.Port)
return s.Serve(lis)
}
+50
View File
@@ -0,0 +1,50 @@
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
}