| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package test
- import (
- "errors"
- "github.com/porter-dev/porter/internal/models"
- "github.com/porter-dev/porter/internal/repository"
- "gorm.io/gorm"
- )
- // ProjectOnboardingRepository implements repository.ProjectOnboardingRepository
- type ProjectOnboardingRepository struct {
- canQuery bool
- onboardings []*models.Onboarding
- }
- // NewProjectOnboardingRepository will return errors if canQuery is false
- func NewProjectOnboardingRepository(canQuery bool) repository.ProjectOnboardingRepository {
- return &ProjectOnboardingRepository{
- canQuery,
- []*models.Onboarding{},
- }
- }
- // CreateProjectOnboarding creates a new project onboarding limit
- func (repo *ProjectOnboardingRepository) CreateProjectOnboarding(
- onboarding *models.Onboarding,
- ) (*models.Onboarding, error) {
- if !repo.canQuery {
- return nil, errors.New("Cannot write database")
- }
- if onboarding == nil {
- return nil, nil
- }
- repo.onboardings = append(repo.onboardings, onboarding)
- return onboarding, nil
- }
- // ReadProjectOnboarding reads a project onboarding by project id
- func (repo *ProjectOnboardingRepository) ReadProjectOnboarding(
- projID uint,
- ) (*models.Onboarding, error) {
- if !repo.canQuery {
- return nil, errors.New("Cannot read from database")
- }
- for _, pu := range repo.onboardings {
- if pu != nil && pu.ProjectID == projID {
- return pu, nil
- }
- }
- return nil, gorm.ErrRecordNotFound
- }
- // UpdateProjectOnboarding modifies an existing ProjectOnboarding in the database
- func (repo *ProjectOnboardingRepository) UpdateProjectOnboarding(
- onboarding *models.Onboarding,
- ) (*models.Onboarding, error) {
- if !repo.canQuery {
- return nil, errors.New("Cannot write database")
- }
- if int(onboarding.ID-1) >= len(repo.onboardings) || repo.onboardings[onboarding.ID-1] == nil {
- return nil, gorm.ErrRecordNotFound
- }
- index := int(onboarding.ID - 1)
- repo.onboardings[index] = onboarding
- return onboarding, nil
- }
|