mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-11-29 21:26:10 +01:00
36 lines
1.2 KiB
Go
36 lines
1.2 KiB
Go
|
// Copyright 2024 The Forgejo Authors. All rights reserved.
|
||
|
// SPDX-License-Identifier: MIT
|
||
|
|
||
|
package forgefed
|
||
|
|
||
|
import (
|
||
|
"code.gitea.io/gitea/modules/timeutil"
|
||
|
"code.gitea.io/gitea/modules/validation"
|
||
|
)
|
||
|
|
||
|
// FederationInfo data type
|
||
|
// swagger:model
|
||
|
type FederationInfo struct {
|
||
|
ID int64 `xorm:"pk autoincr"`
|
||
|
HostFqdn string `xorm:"INDEX VARCHAR(255) NOT NULL"`
|
||
|
NodeInfo NodeInfo `xorm:"NOT NULL"`
|
||
|
LatestActivity timeutil.TimeStamp `xorm:"NOT NULL"`
|
||
|
Create timeutil.TimeStamp `xorm:"created"`
|
||
|
Updated timeutil.TimeStamp `xorm:"updated"`
|
||
|
}
|
||
|
|
||
|
// Validate collects error strings in a slice and returns this
|
||
|
func (info FederationInfo) Validate() []string {
|
||
|
var result []string
|
||
|
result = append(result, validation.ValidateNotEmpty(string(info.HostFqdn), "HostFqdn")...)
|
||
|
result = append(result, validation.ValidateMaxLen(string(info.HostFqdn), 255, "HostFqdn")...)
|
||
|
if (info.NodeInfo == NodeInfo{}) {
|
||
|
result = append(result, "Field NodeInfo may not be empty")
|
||
|
} else {
|
||
|
result = append(result, info.NodeInfo.Validate()...)
|
||
|
}
|
||
|
result = append(result, validation.ValidateNotEmpty(info.LatestActivity, "LatestActivity")...)
|
||
|
|
||
|
return result
|
||
|
}
|