github.com/ztalab/ZACA@v0.0.1/database/mysql/cfssl-model/dao/forbid.go (about) 1 package dao 2 3 import ( 4 "time" 5 6 "github.com/guregu/null" 7 "github.com/pkg/errors" 8 uuid "github.com/satori/go.uuid" 9 "gorm.io/gorm" 10 11 "github.com/ztalab/ZACA/database/mysql/cfssl-model/model" 12 ) 13 14 var ( 15 _ = time.Second 16 _ = null.Bool{} 17 _ = uuid.UUID{} 18 ) 19 20 // GetAllForbid is a function to get a slice of record(s) from forbid table in the cap database 21 // params - page - page requested (defaults to 0) 22 // params - pagesize - number of records in a page (defaults to 20) 23 // params - order - db sort order column 24 // error - ErrNotFound, db Find error 25 func GetAllForbid(db *gorm.DB, page, pagesize int, order string) (results []*model.Forbid, totalRows int64, err error) { 26 27 resultOrm := db.Model(&model.Forbid{}) 28 resultOrm.Count(&totalRows) 29 30 if page > 0 { 31 offset := (page - 1) * pagesize 32 resultOrm = resultOrm.Offset(offset).Limit(pagesize) 33 } else { 34 resultOrm = resultOrm.Limit(pagesize) 35 } 36 37 if order != "" { 38 resultOrm = resultOrm.Order(order) 39 } 40 41 if err = resultOrm.Find(&results).Error; err != nil { 42 if errors.Is(err, gorm.ErrRecordNotFound) { 43 return results, totalRows, nil 44 } 45 return nil, -1, err 46 } 47 48 return results, totalRows, nil 49 } 50 51 // GetForbid is a function to get a single record from the forbid table in the cap database 52 // error - ErrNotFound, db Find error 53 func GetForbid(db *gorm.DB) (record *model.Forbid, err error) { 54 record = &model.Forbid{} 55 if err = db.First(record).Error; err != nil { 56 if errors.Is(err, gorm.ErrRecordNotFound) { 57 return nil, nil 58 } 59 return record, err 60 } 61 62 return record, nil 63 } 64 65 // AddForbid is a function to add a single record to forbid table in the cap database 66 // error - ErrInsertFailed, db save call failed 67 func AddForbid(db *gorm.DB, record *model.Forbid) (result *model.Forbid, RowsAffected int64, err error) { 68 query := db.Save(record) 69 if err = query.Error; err != nil { 70 return nil, -1, ErrInsertFailed 71 } 72 73 return record, query.RowsAffected, nil 74 } 75 76 // UpdateForbid is a function to update a single record from forbid table in the cap database 77 // error - ErrNotFound, db record for id not found 78 // error - ErrUpdateFailed, db meta data copy failed or db.Save call failed 79 func UpdateForbid(argId uint32, updated *model.Forbid) (result *model.Forbid, RowsAffected int64, err error) { 80 81 result = &model.Forbid{} 82 db := DB.First(result, argId) 83 if err = db.Error; err != nil { 84 return nil, -1, ErrNotFound 85 } 86 87 if err = Copy(result, updated); err != nil { 88 return nil, -1, ErrUpdateFailed 89 } 90 91 db = db.Save(result) 92 if err = db.Error; err != nil { 93 return nil, -1, ErrUpdateFailed 94 } 95 96 return result, db.RowsAffected, nil 97 } 98 99 // DeleteForbid is a function to delete a single record from forbid table in the cap database 100 // error - ErrNotFound, db Find error 101 // error - ErrDeleteFailed, db Delete failed error 102 func DeleteForbid(argId uint32) (rowsAffected int64, err error) { 103 104 record := &model.Forbid{} 105 db := DB.First(record, argId) 106 if db.Error != nil { 107 return -1, ErrNotFound 108 } 109 110 db = db.Delete(record) 111 if err = db.Error; err != nil { 112 return -1, ErrDeleteFailed 113 } 114 115 return db.RowsAffected, nil 116 }