// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. package services import ( "context" "github.com/TeaOSLab/EdgeAPI/internal/db/models/regions" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" ) // RegionProviderService ISP相关服务 type RegionProviderService struct { BaseService } // FindAllEnabledRegionProviders 查找所有ISP // Deprecated func (this *RegionProviderService) FindAllEnabledRegionProviders(ctx context.Context, req *pb.FindAllEnabledRegionProvidersRequest) (*pb.FindAllEnabledRegionProvidersResponse, error) { _, _, err := this.ValidateNodeId(ctx) if err != nil { return nil, err } var tx = this.NullTx() providers, err := regions.SharedRegionProviderDAO.FindAllEnabledProviders(tx) if err != nil { return nil, err } var pbProviders = []*pb.RegionProvider{} for _, provider := range providers { pbProviders = append(pbProviders, &pb.RegionProvider{ Id: int64(provider.ValueId), Name: provider.Name, Codes: provider.DecodeCodes(), CustomName: provider.CustomName, CustomCodes: provider.DecodeCustomCodes(), DisplayName: provider.DisplayName(), }) } return &pb.FindAllEnabledRegionProvidersResponse{ RegionProviders: pbProviders, }, nil } // FindEnabledRegionProvider 查找单个ISP信息 // Deprecated func (this *RegionProviderService) FindEnabledRegionProvider(ctx context.Context, req *pb.FindEnabledRegionProviderRequest) (*pb.FindEnabledRegionProviderResponse, error) { _, _, err := this.ValidateNodeId(ctx) if err != nil { return nil, err } var tx = this.NullTx() provider, err := regions.SharedRegionProviderDAO.FindEnabledRegionProvider(tx, req.RegionProviderId) if err != nil { return nil, err } if provider == nil { return &pb.FindEnabledRegionProviderResponse{ RegionProvider: nil, }, nil } return &pb.FindEnabledRegionProviderResponse{ RegionProvider: &pb.RegionProvider{ Id: int64(provider.ValueId), Name: provider.Name, Codes: provider.DecodeCodes(), CustomName: provider.CustomName, CustomCodes: provider.DecodeCustomCodes(), DisplayName: provider.DisplayName(), }, }, nil } // FindAllRegionProviders 查找所有ISP func (this *RegionProviderService) FindAllRegionProviders(ctx context.Context, req *pb.FindAllRegionProvidersRequest) (*pb.FindAllRegionProvidersResponse, error) { _, _, err := this.ValidateNodeId(ctx) if err != nil { return nil, err } var tx = this.NullTx() providers, err := regions.SharedRegionProviderDAO.FindAllEnabledProviders(tx) if err != nil { return nil, err } var pbProviders = []*pb.RegionProvider{} for _, provider := range providers { pbProviders = append(pbProviders, &pb.RegionProvider{ Id: int64(provider.ValueId), Name: provider.Name, Codes: provider.DecodeCodes(), CustomName: provider.CustomName, CustomCodes: provider.DecodeCustomCodes(), DisplayName: provider.DisplayName(), }) } return &pb.FindAllRegionProvidersResponse{ RegionProviders: pbProviders, }, nil } // FindRegionProvider 查找单个ISP信息 func (this *RegionProviderService) FindRegionProvider(ctx context.Context, req *pb.FindRegionProviderRequest) (*pb.FindRegionProviderResponse, error) { _, _, err := this.ValidateNodeId(ctx) if err != nil { return nil, err } var tx = this.NullTx() provider, err := regions.SharedRegionProviderDAO.FindEnabledRegionProvider(tx, req.RegionProviderId) if err != nil { return nil, err } if provider == nil { return &pb.FindRegionProviderResponse{ RegionProvider: nil, }, nil } return &pb.FindRegionProviderResponse{ RegionProvider: &pb.RegionProvider{ Id: int64(provider.ValueId), Name: provider.Name, Codes: provider.DecodeCodes(), CustomName: provider.CustomName, CustomCodes: provider.DecodeCustomCodes(), DisplayName: provider.DisplayName(), }, }, nil } // UpdateRegionProviderCustom 修改城市定制信息 func (this *RegionProviderService) UpdateRegionProviderCustom(ctx context.Context, req *pb.UpdateRegionProviderCustomRequest) (*pb.RPCSuccess, error) { _, err := this.ValidateAdmin(ctx) if err != nil { return nil, err } var tx = this.NullTx() err = regions.SharedRegionProviderDAO.UpdateProviderCustom(tx, req.RegionProviderId, req.CustomName, req.CustomCodes) if err != nil { return nil, err } return this.Success() }