Files
satusehat-worker/internal/bpjs/vclaim/peserta/service.go
T
2026-04-14 01:21:54 +00:00

44 lines
1.2 KiB
Go

package peserta
import (
"context"
"service/pkg/errors"
)
type Service interface {
GetPesertaByNoKartu(ctx context.Context, noKartu, tglSEP string) (*PesertaData, error)
GetPesertaByNIK(ctx context.Context, nik, tglSEP string) (*PesertaData, error)
}
type service struct {
repo Repository
}
func NewService(repo Repository) Service {
return &service{repo: repo}
}
func (s *service) GetPesertaByNoKartu(ctx context.Context, noKartu, tglSEP string) (*PesertaData, error) {
if noKartu == "" || tglSEP == "" {
return nil, errors.NewValidationError().Message("Nomor Kartu dan Tanggal SEP wajib diisi").Build()
}
res, err := s.repo.GetByNoKartu(ctx, noKartu, tglSEP)
if err != nil {
return nil, errors.ExternalError().Message("Gagal mengambil data peserta BPJS berdasarkan No Kartu").Cause(err).Build()
}
return res, nil
}
func (s *service) GetPesertaByNIK(ctx context.Context, nik, tglSEP string) (*PesertaData, error) {
if nik == "" || tglSEP == "" {
return nil, errors.NewValidationError().Message("NIK dan Tanggal SEP wajib diisi").Build()
}
res, err := s.repo.GetByNIK(ctx, nik, tglSEP)
if err != nil {
return nil, errors.ExternalError().Message("Gagal mengambil data peserta BPJS berdasarkan NIK").Cause(err).Build()
}
return res, nil
}