package member_role

import (
	"github.com/gin-gonic/gin"

	srvv1 "github.com/pingcap-inc/pchub/internal/apiserver/service/v1"
	"github.com/pingcap-inc/pchub/internal/apiserver/store"
	"github.com/pingcap-inc/pchub/pkg/log"
	"github.com/pingcap-inc/pchub/pkg/util/ginres"
)

type MemberRoleController struct {
	srv srvv1.Service
}

func NewMemberRoleController(store store.Factory) *MemberRoleController {
	return &MemberRoleController{
		srv: srvv1.NewService(store),
	}
}

func (m *MemberRoleController) Get(c *gin.Context) {
	log.L(c).Info("MemberRoleController.Get called.")

	params := ginres.ParseQuery(c, "providerCode")

	res, err := m.srv.MemberRole().Get(c, params["providerCode"])
	if err != nil {
		ginres.WriteResponse(c, err, nil)

		return
	}

	ginres.WriteResponse(c, nil, res)
}
