package repositories import ( "git.secnex.io/secnex/certman/models" "gorm.io/gorm" ) type CertificateAuthorityRepository struct { db *gorm.DB } // NewCertificateAuthorityRepository creates a new certificate authority repository func NewCertificateAuthorityRepository(db *gorm.DB) *CertificateAuthorityRepository { return &CertificateAuthorityRepository{db: db} } // GetByID returns a certificate authority by their ID func (r *CertificateAuthorityRepository) GetByID(id string) (models.CertificateAuthority, error) { var ca models.CertificateAuthority if err := r.db.Where("id = ?", id).First(&ca).Error; err != nil { return models.CertificateAuthority{}, err } return ca, nil } // GetAll returns all certificate authorities func (r *CertificateAuthorityRepository) GetAll() ([]models.CertificateAuthority, error) { var cas []models.CertificateAuthority if err := r.db.Find(&cas).Error; err != nil { return []models.CertificateAuthority{}, err } return cas, nil } // Create creates a new certificate authority func (r *CertificateAuthorityRepository) Create(ca models.CertificateAuthority) (models.CertificateAuthority, error) { if err := r.db.Create(&ca).Error; err != nil { return models.CertificateAuthority{}, err } return ca, nil } // Update updates a certificate authority func (r *CertificateAuthorityRepository) Update(ca models.CertificateAuthority) error { return r.db.Save(&ca).Error } // Delete deletes a certificate authority by their ID func (r *CertificateAuthorityRepository) Delete(id string) error { return r.db.Delete(&models.CertificateAuthority{}, id).Error } // HardDelete deletes a certificate authority by their ID func (r *CertificateAuthorityRepository) HardDelete(ca models.CertificateAuthority) error { return r.db.Unscoped().Delete(&ca).Error }