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