github.com/companieshouse/insolvency-api@v0.0.0-20231024103413-440c973d9e9b/transformers/progress_report_resource.go (about) 1 package transformers 2 3 import ( 4 "fmt" 5 6 "github.com/companieshouse/chs.go/log" 7 "github.com/companieshouse/insolvency-api/constants" 8 "github.com/companieshouse/insolvency-api/models" 9 "github.com/companieshouse/insolvency-api/utils" 10 ) 11 12 // ProgressReportResourceRequestToDB transforms a progress report request to a dao model 13 func ProgressReportResourceRequestToDB(req *models.ProgressReport, transactionID string, helperService utils.HelperService) *models.ProgressReportResourceDao { 14 15 etag, err := helperService.GenerateEtag() 16 17 if err != nil { 18 log.Error(fmt.Errorf("error generating etag: [%s] and etag is empty", err)) 19 return nil 20 } 21 22 isEtagValidated := helperService.HandleEtagGenerationValidation(err) 23 24 if !isEtagValidated { 25 return nil 26 } 27 28 selfLink := fmt.Sprintf(constants.TransactionsPath + transactionID + "/insolvency/progress-report") 29 30 dao := &models.ProgressReportResourceDao{ 31 FromDate: req.FromDate, 32 ToDate: req.ToDate, 33 Attachments: req.Attachments, 34 Etag: etag, 35 Kind: "insolvency-resource#progress-report", 36 Links: models.ProgressReportResourceLinksDao{Self: selfLink}, 37 } 38 39 return dao 40 } 41 42 // ProgressReportDaoToResponse transforms a progress report dao model to a response 43 func ProgressReportDaoToResponse(progressReport *models.ProgressReportResourceDao) *models.ProgressReportResource { 44 return &models.ProgressReportResource{ 45 FromDate: progressReport.FromDate, 46 ToDate: progressReport.ToDate, 47 Attachments: progressReport.Attachments, 48 Etag: progressReport.Etag, 49 Kind: progressReport.Kind, 50 Links: models.ProgressReportResourceLinks(progressReport.Links), 51 } 52 }