| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package gorm
- import (
- "github.com/porter-dev/porter/internal/models"
- "github.com/porter-dev/porter/internal/repository"
- "gorm.io/gorm"
- )
- // PolicyRepository uses gorm.DB for querying the database
- type PolicyRepository struct {
- db *gorm.DB
- }
- // NewPolicyRepository returns a PolicyRepository which uses
- // gorm.DB for querying the database
- func NewPolicyRepository(db *gorm.DB) repository.PolicyRepository {
- return &PolicyRepository{db}
- }
- func (repo *PolicyRepository) CreatePolicy(a *models.Policy) (*models.Policy, error) {
- if err := repo.db.Create(a).Error; err != nil {
- return nil, err
- }
- return a, nil
- }
- func (repo *PolicyRepository) ListPoliciesByProjectID(projectID uint) ([]*models.Policy, error) {
- policys := []*models.Policy{}
- if err := repo.db.Where("project_id = ?", projectID).Find(&policys).Error; err != nil {
- return nil, err
- }
- return policys, nil
- }
- func (repo *PolicyRepository) ReadPolicy(projectID uint, uid string) (*models.Policy, error) {
- policy := &models.Policy{}
- if err := repo.db.Where("project_id = ? AND unique_id = ?", projectID, uid).First(&policy).Error; err != nil {
- return nil, err
- }
- return policy, nil
- }
- func (repo *PolicyRepository) UpdatePolicy(
- policy *models.Policy,
- ) (*models.Policy, error) {
- if err := repo.db.Save(policy).Error; err != nil {
- return nil, err
- }
- return policy, nil
- }
- func (repo *PolicyRepository) DeletePolicy(
- policy *models.Policy,
- ) (*models.Policy, error) {
- if err := repo.db.Delete(&policy).Error; err != nil {
- return nil, err
- }
- return policy, nil
- }
|