package main import ( "Zadanie2Project/main/models" "Zadanie2Project/main/repository" "github.com/labstack/echo/v4" echoSwagger "github.com/swaggo/echo-swagger" "net/http" "strconv" ) const connectionURL = "postgres://tgbot:pass@localhost:5432/vyatsu" func main() { e := echo.New() e.GET("/programs", getPrograms) e.GET("/versions", getVersions) e.GET("/swagger/*", echoSwagger.WrapHandler) // Start server e.Logger.Fatal(e.Start(":8080")) } func getPrograms(e echo.Context) error { db, err := repository.New(connectionURL) offset, err := strconv.Atoi(e.QueryParam("offset")) limit, err := strconv.Atoi(e.QueryParam("limit")) var programsDto []models.ProgramDto if limit == 0 { limit = 10 } programsDto, err = db.GetPrograms(offset, limit) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, err.Error()) } return e.JSON(http.StatusOK, programsDto) } func getVersions(e echo.Context) error { db, err := repository.New(connectionURL) offset, err := strconv.Atoi(e.QueryParam("offset")) limit, err := strconv.Atoi(e.QueryParam("limit")) var versionsDto []models.ProgramVersionsDto if limit == 0 { limit = 10 } versionsDto, err = db.GetProgramVersions(offset, limit) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, err.Error()) } return e.JSON(http.StatusOK, versionsDto) }