More API progress

This time mainly helper functions for converting an account and
associated types into their API representation
This commit is contained in:
Melody Becker 2024-11-04 07:48:46 +01:00
parent 873f52d64f
commit a653477e7f
8 changed files with 201 additions and 7 deletions

View file

@ -13,7 +13,7 @@ type RemoteServer struct {
IsSelf bool // Whether this server is yours truly
}
func (s *Storage) FindRemoteServer(url string) (*RemoteServer, error) {
func (s *Storage) FindRemoteServerByDomain(url string) (*RemoteServer, error) {
server := RemoteServer{}
err := s.db.Where("domain = ?").First(&server).Error
switch err {
@ -40,12 +40,25 @@ func (s *Storage) FindRemoteServerByDisplayName(displayName string) (*RemoteServ
}
}
func (s *Storage) FindRemoteServerById(id uint) (*RemoteServer, error) {
server := RemoteServer{}
err := s.db.First(&server, id).Error
switch err {
case nil:
return &server, nil
case gorm.ErrRecordNotFound:
return nil, ErrEntryNotFound
default:
return nil, err
}
}
// Create a new remote server
func (s *Storage) NewRemoteServer(
url, displayName, icon string,
serverType RemoteServerType,
) (*RemoteServer, error) {
_, err := s.FindRemoteServer(url)
_, err := s.FindRemoteServerByDomain(url)
switch err {
case nil:
return nil, ErrEntryAlreadyExists