123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- package dao
- import (
- "go-common/app/admin/ep/tapd/model"
- "go-common/library/ecode"
- )
- const _wildcards = "%"
- // AddHookURL Add Hook URL.
- func (d *Dao) AddHookURL(hookURL *model.HookUrl) error {
- return d.db.Create(hookURL).Error
- }
- // UpdateHookURL Update Hook URL.
- func (d *Dao) UpdateHookURL(hookURL *model.HookUrl) error {
- return d.db.Model(&model.HookUrl{}).Where("id=?", hookURL.ID).Update(hookURL).Error
- }
- // QueryHookURLByID Query Hook URL By ID.
- func (d *Dao) QueryHookURLByID(id int64) (hookURL *model.HookUrl, err error) {
- hookURL = &model.HookUrl{}
- err = d.db.Model(&model.HookUrl{}).Where("id = ?", id).First(hookURL).Error
- if err == ecode.NothingFound {
- err = nil
- }
- return
- }
- // AddHookURLandEvent Add Hook URL and Event.
- func (d *Dao) AddHookURLandEvent(hookURL *model.HookUrl, urlEvents []*model.UrlEvent) (err error) {
- tx := d.db.Begin()
- if err = tx.Error; err != nil {
- return
- }
- if err = tx.Create(hookURL).Error; err != nil {
- tx.Rollback()
- return
- }
- for _, urlEvent := range urlEvents {
- urlEvent.UrlID = hookURL.ID
- if err = tx.Create(urlEvent).Error; err != nil {
- tx.Rollback()
- return
- }
- }
- if err = tx.Commit().Error; err != nil {
- tx.Rollback()
- }
- return
- }
- // UpdateHookURLandEvent Update Hook URL and Event.
- func (d *Dao) UpdateHookURLandEvent(hookURL *model.HookUrl, urlEvents []*model.UrlEvent) (err error) {
- tx := d.db.Begin()
- if err = tx.Error; err != nil {
- return
- }
- if err = tx.Model(model.HookUrl{}).Where("id=?", hookURL.ID).
- Updates(map[string]interface{}{"url": hookURL.URL, "workspace_id": hookURL.WorkspaceID, "status": hookURL.Status, "update_by": hookURL.UpdateBy}).
- Error; err != nil {
- tx.Rollback()
- return
- }
- for _, urlEvent := range urlEvents {
- if urlEvent.ID != 0 {
- //update
- if err = tx.Model(model.UrlEvent{}).Where("id=?", urlEvent.ID).Update(urlEvent).Error; err != nil {
- tx.Rollback()
- return
- }
- } else {
- //add
- if err = tx.Create(urlEvent).Error; err != nil {
- tx.Rollback()
- return
- }
- }
- }
- if err = tx.Commit().Error; err != nil {
- tx.Rollback()
- }
- return
- }
- //FindHookURLs Find Hook URLs.
- func (d *Dao) FindHookURLs(req *model.QueryHookURLReq) (total int64, hookURLs []*model.HookUrl, err error) {
- gDB := d.db.Model(&model.HookUrl{})
- if req.ID > 0 {
- gDB = gDB.Where("id=?", req.ID)
- }
- if req.Status > 0 {
- gDB = gDB.Where("status=?", req.Status)
- }
- if req.UpdateBy != "" {
- gDB = gDB.Where("update_by=?", req.UpdateBy)
- }
- if req.URL != "" {
- gDB = gDB.Where("url like ?", req.URL+_wildcards)
- }
- if err = gDB.Count(&total).Error; err != nil {
- return
- }
- err = gDB.Order("ctime desc").Offset((req.PageNum - 1) * req.PageSize).Limit(req.PageSize).Find(&hookURLs).Error
- return
- }
|