forgejo/models/forgefed/federationinfo_repository.go

62 lines
1.6 KiB
Go
Raw Normal View History

2024-01-12 14:33:52 +01:00
// Copyright 2024 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package forgefed
import (
"context"
"fmt"
2024-01-12 14:33:52 +01:00
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/modules/validation"
2024-01-12 14:33:52 +01:00
)
func init() {
db.RegisterModel(new(FederationInfo))
}
func GetFederationInfo(ctx context.Context, ID int64) (*FederationInfo, error) {
info := new(FederationInfo)
has, err := db.GetEngine(ctx).Where("id=?", ID).Get(info)
if err != nil {
return nil, err
} else if !has {
return nil, fmt.Errorf("FederationInfo record %v does not exist", ID)
}
if res, err := validation.IsValid(info); !res {
return nil, fmt.Errorf("FederationInfo is not valid: %v", err)
}
return info, nil
}
2024-01-12 17:00:17 +01:00
func FindFederationInfoByHostFqdn(ctx context.Context, fqdn string) (*FederationInfo, error) {
info := new(FederationInfo)
2024-01-16 09:31:36 +01:00
// TODO: use parameter with toLower
has, err := db.GetEngine(ctx).Where("host_fqdn=?", fqdn).Get(info)
if err != nil {
return nil, err
} else if !has {
2024-01-12 17:00:17 +01:00
return nil, nil
}
if res, err := validation.IsValid(info); !res {
return nil, fmt.Errorf("FederationInfo is not valid: %v", err)
}
return info, nil
}
2024-01-12 17:27:52 +01:00
func CreateFederationInfo(ctx context.Context, info FederationInfo) error {
if res, err := validation.IsValid(info); !res {
return fmt.Errorf("FederationInfo is not valid: %v", err)
}
_, err := db.GetEngine(ctx).Insert(info)
return err
}
func UpdateFederationInfo(ctx context.Context, info FederationInfo) error {
if res, err := validation.IsValid(info); !res {
return fmt.Errorf("FederationInfo is not valid: %v", err)
}
_, err := db.GetEngine(ctx).ID(info.ID).Update(info)
return err
}