12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package repository
- import (
- "context"
- v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
- "github.com/go-nunu/nunu-layout-advanced/internal/model"
- )
- type GameShieldBackendRepository interface {
- GetGameShieldBackendById(ctx context.Context, id int64) (*model.GameShieldBackend, error)
- AddGameShieldBackend(ctx context.Context, req *model.GameShieldBackend) error
- EditGameShieldBackend(ctx context.Context, req *v1.GameShieldBackendRequest) error
- DeleteGameShieldBackend(ctx context.Context, id int, hostId int) error
- GetGameShieldBackendByHostId(ctx context.Context, hostId int) ([]model.GameShieldBackend, error)
- GetGameShieldBackendConfigCountByHostId(ctx context.Context, hostId int) (*v1.GameShieldHostBackendConfigResponse, error)
- GetGameShieldBackendSourceMachineIpByHostId(ctx context.Context, hostId int) ([]string, error)
- GetGameShieldBackendByHostIdAndSourceMachineIp(ctx context.Context, hostId int, sourceMachineIp string) ([]model.GameShieldBackend, error)
- }
- func NewGameShieldBackendRepository(
- repository *Repository,
- ) GameShieldBackendRepository {
- return &gameShieldBackendRepository{
- Repository: repository,
- }
- }
- type gameShieldBackendRepository struct {
- *Repository
- }
- func (r *gameShieldBackendRepository) GetGameShieldBackendById(ctx context.Context, id int64) (*model.GameShieldBackend, error) {
- var gameShieldBackend model.GameShieldBackend
- if err := r.DB(ctx).Where("id = ?", id).First(&gameShieldBackend).Error; err != nil {
- return nil, err
- }
- return &gameShieldBackend, nil
- }
- func (r *gameShieldBackendRepository) AddGameShieldBackend(ctx context.Context, req *model.GameShieldBackend) error {
- if err := r.DB(ctx).Create(&req).Error; err != nil {
- return err
- }
- return nil
- }
- func (r *gameShieldBackendRepository) EditGameShieldBackend(ctx context.Context, req *v1.GameShieldBackendRequest) error {
- if err := r.DB(ctx).Model(&model.GameShieldBackend{}).Where("id = ?", req.Id).Updates(req).Error; err != nil {
- return err
- }
- return nil
- }
- func (r *gameShieldBackendRepository) DeleteGameShieldBackend(ctx context.Context, id int, hostId int) error {
- if err := r.DB(ctx).Where("id = ? AND host_id = ?", id, hostId).Delete(&model.GameShieldBackend{}).Error; err != nil {
- return err
- }
- return nil
- }
- func (r *gameShieldBackendRepository) GetGameShieldBackendByHostId(ctx context.Context, hostId int) ([]model.GameShieldBackend, error) {
- var gameShieldBackend []model.GameShieldBackend
- if err := r.DB(ctx).Where("host_id = ?", hostId).Order("key_sort DESC").Find(&gameShieldBackend).Error; err != nil {
- return nil, err
- }
- return gameShieldBackend, nil
- }
- func (r *gameShieldBackendRepository) GetGameShieldBackendConfigCountByHostId(ctx context.Context, hostId int) (*v1.GameShieldHostBackendConfigResponse, error) {
- var res v1.GameShieldHostBackendConfigResponse
- if err := r.DB(ctx).Model(&model.GameShieldBackend{}).Where("host_id = ?", hostId).Count(&res.RuleEntriesCount).Error; err != nil {
- return nil, err
- }
- if err := r.DB(ctx).Model(&model.GameShieldBackend{}).Where("host_id = ?", hostId).Distinct("source_machine_ip").Count(&res.SourceMachinesCount).Error; err != nil {
- return nil, err
- }
- if err := r.DB(ctx).Model(&model.GameShieldBackend{}).Where("host_id = ?", hostId).Where("max_bandwidth = ?", 1).Count(&res.MaxBandwidthCount).Error; err != nil {
- return nil, err
- }
- return &res, nil
- }
- func (r *gameShieldBackendRepository) GetGameShieldBackendSourceMachineIpByHostId(ctx context.Context, hostId int) ([]string, error) {
- var res []string
- if err := r.DB(ctx).Model(&model.GameShieldBackend{}).Where("host_id = ?", hostId).Distinct("source_machine_ip").Pluck("source_machine_ip", &res).Error; err != nil {
- return nil, err
- }
- return res, nil
- }
- func (r *gameShieldBackendRepository) GetGameShieldBackendByHostIdAndSourceMachineIp(ctx context.Context, hostId int, sourceMachineIp string) ([]model.GameShieldBackend, error) {
- var res []model.GameShieldBackend
- if err := r.DB(ctx).Where("host_id = ? AND source_machine_ip = ?", hostId, sourceMachineIp).Find(&res).Error; err != nil {
- return nil, err
- }
- return res, nil
- }
|