Implementation for downloading charts
[ric-plt/ricdms.git] / pkg / resthooks / resthooks.go
index 500b32e..622bcaf 100644 (file)
 package resthooks
 
 import (
+       ch "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/charts"
        ph "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/health"
+       "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/models"
+       "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/onboard"
+       "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/restapi/operations/charts"
        "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/restapi/operations/health"
        "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/ricdms"
        "github.com/go-openapi/runtime/middleware"
 )
 
-func NewResthook(h ph.IHealthChecker) *Resthook {
+func NewResthook(h ph.IHealthChecker, o onboard.IOnboarder, chMgr ch.IChartMgr) *Resthook {
        return &Resthook{
                HealthChecker: h,
+               Onboarder:     o,
+               ChartMgr:      chMgr,
        }
 }
 
@@ -37,3 +43,30 @@ func (rh *Resthook) GetDMSHealth() (resp middleware.Responder) {
        ricdms.Logger.Debug("healthchecker : %v\n", rh.HealthChecker)
        return health.NewGetHealthCheckOK().WithPayload(rh.HealthChecker.GetStatus())
 }
+
+func (rh *Resthook) OnBoard(params *models.Descriptor) (resp middleware.Responder) {
+       ricdms.Logger.Debug("onboarder: invoked")
+       return rh.Onboarder.Onboard(params)
+}
+
+func (rh *Resthook) GetCharts() (resp middleware.Responder) {
+       ricdms.Logger.Debug("getcharts: invoked")
+       chartList, err := rh.ChartMgr.GetCharts()
+
+       if err != nil {
+               return charts.NewGetChartsListInternalServerError()
+       }
+       return charts.NewGetChartsListOK().WithPayload(chartList)
+}
+
+func (rh *Resthook) DownloadChart(chartname, version string) (resp middleware.Responder) {
+       ricdms.Logger.Debug("DownloadCharts: invoked")
+       reader, err := rh.ChartMgr.DownloadChart(chartname, version)
+
+       if err != nil {
+               ricdms.Logger.Error("Error : %v", err)
+               return charts.NewDownloadHelmChartInternalServerError()
+       }
+
+       return charts.NewDownloadHelmChartOK().WithPayload(reader)
+}