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  }