package member

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	e "simrs-vx/internal/domain/bpjs-entities/member"

	"gorm.io/gorm"
)

func ReadList(input *e.ReadListDto, data *e.Response, tx *gorm.DB) error {
	endpoint := endpointMapper(input)
	req, err := http.NewRequest("GET", endpoint, nil)
	if err != nil {
		return err
	}
	req.Header.Set("Content-Type", "application/json")

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		return err
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		return err
	}

	if err := json.Unmarshal(body, &data); err != nil {
		return fmt.Errorf("failed to parse response JSON: %w", err)
	}

	return nil
}
