Как получить реестр из БД и затем связать запрос без удаления данных - PullRequest
0 голосов
/ 11 апреля 2019

Мне нужно сделать обновление для таблицы на PG.В запросе есть несколько столбцов или полей в таблице.Сначала свяжите запрос с экземпляром, но когда я получу объект из БД, затем удалите все данные из запроса.Я предпочитаю проверять данные структуры перед получением данных из базы данных.

package main

import (
  "log"

  "bitbucket.org/company/app/controllers"
  "bitbucket.org/company/gobase/rest"
)

func main() {
  server, routes := rest.NewServer(prefixPath) 
  routes.POST("/data/:id", controllers.Update)
}

Модель

type Data struct {
    tableName struct{} `sql:"data"`

    ID        int       `sql:"id,pk"      json:"id"`
    CreatedAt time.Time `sql:"created_at" json:"created_at"`
    Column1   string    `sql:"column1"    json:"column1"`
    Column2   string    `sql:"column2"    json:"column2"`
    Column3   time.Time `sql:"column3"    json:"column3"`
}

Контроллер:

func Update(c echo.Context) (err error) {
    id, err := strconv.Atoi(c.Param("id"))
    if err != nil {
        return c.JSON(http.StatusBadRequest, err)
    }

    data := Data{}
    if err = c.Bind(&data); err != nil {
        return c.JSON(http.StatusBadRequest, err)
    }

    err := db().Table("data").
      Where("id = ?", id).
      Select(&data)
    if err != nil {
      return c.JSON(http.StatusNotFound, err)
    }

    , err := db(data).
      Where("id = ?", data.ID).
      Update(data)
    if err != nil {
      return c.JSON(http.StatusInternalServerError, err)
    }

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

ЕслиСначала я ищу сущность в bd, а затем привязываю запрос к сущности, он отлично работает, он только обновляет поля запроса.Но я предпочитаю проверить структуру запроса перед поиском в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...