go-common/app/infra/config/dao/v2/build.go

78 lines
2.0 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package v2
import (
"database/sql"
"go-common/app/infra/config/model"
"go-common/library/ecode"
"go-common/library/log"
)
// BuildsByAppID get builds by app id.
func (d *Dao) BuildsByAppID(appID int64) (builds []string, err error) {
var rows *sql.Rows
if rows, err = d.DB.Select("name").Model(&model.Build{}).Where("app_id = ? ", appID).Rows(); err != nil {
log.Error("BuildsByAppID(%v) error(%v)", appID, err)
return
}
defer rows.Close()
for rows.Next() {
var build string
if err = rows.Scan(&build); err != nil {
log.Error("BuildsByAppID(%v) error(%v)", appID, err)
return
}
builds = append(builds, build)
}
if len(builds) == 0 {
err = ecode.NothingFound
}
return
}
// BuildsByAppIDs get builds by app id.
func (d *Dao) BuildsByAppIDs(appIDs []int64) (builds []string, err error) {
var rows *sql.Rows
if rows, err = d.DB.Select("name").Model(&model.Build{}).Where("app_id in (?) ", appIDs).Rows(); err != nil {
log.Error("BuildsByAppIDs(%v) error(%v)", appIDs, err)
return
}
defer rows.Close()
for rows.Next() {
var build string
if err = rows.Scan(&build); err != nil {
log.Error("BuildsByAppIDs(%v) error(%v)", appIDs, err)
return
}
builds = append(builds, build)
}
if len(builds) == 0 {
err = ecode.NothingFound
}
return
}
// TagID get TagID by ID.
func (d *Dao) TagID(appID int64, build string) (tagID int64, err error) {
row := d.DB.Select("tag_id").Where("app_id =? and name= ?", appID, build).Model(&model.Build{}).Row()
if err = row.Scan(&tagID); err != nil {
log.Error("TagID(%v) error(%v)", build, err)
if err == sql.ErrNoRows {
err = ecode.NothingFound
}
}
return
}
// BuildID get build by ID.
func (d *Dao) BuildID(appID int64, build string) (buildID int64, err error) {
row := d.DB.Select("id").Where("app_id =? and name= ?", appID, build).Model(&model.Build{}).Row()
if err = row.Scan(&buildID); err != nil {
log.Error("buildID(%v) error(%v)", buildID, err)
if err == sql.ErrNoRows {
err = ecode.NothingFound
}
}
return
}