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