api with functioning managment
This commit is contained in:
64
local/repository/server.go
Normal file
64
local/repository/server.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"acc-server-manager/local/model"
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type ServerRepository struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func NewServerRepository(db *gorm.DB) *ServerRepository {
|
||||
return &ServerRepository{
|
||||
db: db,
|
||||
}
|
||||
}
|
||||
|
||||
// GetFirst
|
||||
// Gets first row from Server table.
|
||||
//
|
||||
// Args:
|
||||
// context.Context: Application context
|
||||
// Returns:
|
||||
// model.ServerModel: Server object from database.
|
||||
func (as ServerRepository) GetFirst(ctx context.Context, serverId int) *model.Server {
|
||||
db := as.db.WithContext(ctx)
|
||||
ServerModel := new(model.Server)
|
||||
db.Where("id=?", serverId).First(&ServerModel)
|
||||
return ServerModel
|
||||
}
|
||||
|
||||
// GetFirstByServiceName
|
||||
// Gets first row from Server table.
|
||||
//
|
||||
// Args:
|
||||
// context.Context: Application context
|
||||
// Returns:
|
||||
// model.ServerModel: Server object from database.
|
||||
func (as ServerRepository) GetFirstByServiceName(ctx context.Context, serviceName string) *model.Server {
|
||||
db := as.db.WithContext(ctx)
|
||||
ServerModel := new(model.Server)
|
||||
result := db.Where("service_name=?", serviceName).First(&ServerModel)
|
||||
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
||||
return nil
|
||||
}
|
||||
return ServerModel
|
||||
}
|
||||
|
||||
// GetAll
|
||||
// Gets All rows from Server table.
|
||||
//
|
||||
// Args:
|
||||
// context.Context: Application context
|
||||
// Returns:
|
||||
// model.ServerModel: Server object from database.
|
||||
func (as ServerRepository) GetAll(ctx context.Context) *[]model.Server {
|
||||
db := as.db.WithContext(ctx)
|
||||
ServerModel := new([]model.Server)
|
||||
db.Find(&ServerModel)
|
||||
return ServerModel
|
||||
}
|
||||
Reference in New Issue
Block a user