How to upload image or file as backend

Viewed 113

I don't know how to upload image or file in Go. Here I share my code

this is my repository, what i must change or add more code?

func (db *reportConnection) CreateReport(report entity.Report) entity.Report {
    db.connection.Save(&report)
    db.connection.Preload("User").Find(&report)
    return report
}

this is my service, what i must change or add more code?

func (service *reportService) Create(r dto.ReportCreateDTO) entity.Report {
    report := entity.Report{}
    err := smapping.FillStruct(&report, smapping.MapFields(&r))
    if err != nil {
        log.Fatalf("failed map %v: ", err)
    }
    res := service.reportRepo.CreateReport(report)
    return res
}

this is my controller, what i must change or add more code?

func (c *reportController) Create(ctx *gin.Context) {
    var createReport dto.ReportCreateDTO
    err := ctx.ShouldBind(&createReport)
    if err != nil {
        response := response.BuildErrorResponse("Failed to process!", err.Error(), response.EmptyObj{})
        ctx.AbortWithStatusJSON(http.StatusBadRequest, response)
    } else {
        authHeader := ctx.GetHeader("Authorization")
        userID := c.GetUserIDByToken(authHeader)
        convertUserID, err := strconv.ParseUint(userID, 10, 64)
        if err == nil {
            createReport.UserID = convertUserID
        }
        result := c.reportService.Create(createReport)
        response := response.BuildResponse(true, "OK!", result)
        ctx.JSON(http.StatusOK, response)
    }
}

```

i think i need to set a header, but not sure how

0 Answers
Related