Skip to content

Commit

Permalink
return json
Browse files Browse the repository at this point in the history
  • Loading branch information
diego-m-ob committed Sep 25, 2024
1 parent 3cedaf4 commit 4f2a326
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 11 deletions.
23 changes: 13 additions & 10 deletions pkg/server/import_handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,24 +68,28 @@ func (h importHandlers) postImportRerun(c echo.Context) error {
return c.JSON(http.StatusBadRequest, NewErrorResponse(err))
}

if err := h.doImport(request, logger); err != nil {
discovery, err := h.doImport(request, logger);
if err != nil {
return c.JSON(http.StatusBadRequest, NewErrorResponse(err))
}

response := models.ImportRerunResponse{}
response := models.ImportRerunResponse{
Discovery: discovery,
}
logger.Info("Imported")

return c.JSON(http.StatusOK, response)
}

// nolint:unparam
func (h importHandlers) doImport(request models.ImportRequest, logger *logrus.Entry) error {
func (h importHandlers) doImport(request models.ImportRequest, logger *logrus.Entry) (discovery.ModelDiscovery, error) {
var discoveryModel discovery.ModelDiscovery
logger.WithField("len(request.Report)", len(request.Report)).Info("Importing ...")

// Create a reader for the zip file
zipReader, err := zip.NewReader(bytes.NewReader([]byte(request.Report)), int64(len(request.Report)))
if err != nil {
return fmt.Errorf("failed to create zip reader: %w", err)
return discoveryModel, fmt.Errorf("failed to create zip reader: %w", err)
}

// Search for discovery.json file
Expand All @@ -98,31 +102,30 @@ func (h importHandlers) doImport(request models.ImportRequest, logger *logrus.En
}

if discoveryFile == nil {
return fmt.Errorf("discovery.json not found in the zip file")
return discoveryModel, fmt.Errorf("discovery.json not found in the zip file")
}

// Open the discovery.json file
rc, err := discoveryFile.Open()
if err != nil {
return fmt.Errorf("failed to open discovery.json: %w", err)
return discoveryModel, fmt.Errorf("failed to open discovery.json: %w", err)
}
defer rc.Close()

// Read the content of discovery.json
content, err := io.ReadAll(rc)
if err != nil {
return fmt.Errorf("failed to read discovery.json: %w", err)
return discoveryModel, fmt.Errorf("failed to read discovery.json: %w", err)
}

// Parse the JSON content
var discoveryModel discovery.ModelDiscovery
err = json.Unmarshal(content, &discoveryModel)
if err != nil {
return fmt.Errorf("failed to parse discovery.json: %w", err)
return discoveryModel, fmt.Errorf("failed to parse discovery.json: %w", err)
}

// Log the parsed data
logger.WithField("discovery", discoveryModel).Info("Discovery data parsed successfully")

return nil
return discoveryModel, nil
}
6 changes: 5 additions & 1 deletion pkg/server/models/import.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package models

import validation "github.com/go-ozzo/ozzo-validation"
import (
"github.com/OpenBankingUK/conformance-suite/pkg/discovery"
validation "github.com/go-ozzo/ozzo-validation"
)

// ImportRequest - Request to `/api/import/review` or `/api/import/rerun` POST.
// TODO(mbana): Needs more work.
Expand All @@ -21,4 +24,5 @@ type ImportReviewResponse struct {

// ImportRerunResponse - Response to `/api/import/rerun` POST.
type ImportRerunResponse struct {
Discovery discovery.ModelDiscovery
}

0 comments on commit 4f2a326

Please sign in to comment.