Documentation
¶
Index ¶
- Variables
- type ClashConfigProxyGroup
- type ClashConfigSubscription
- type CreateClashConfigProxyGroupInput
- type CreateClashConfigSubscriptionInput
- type CreateProxyProviderSubscriptionInput
- type CreateRuleProviderSubscriptionInput
- type Handler
- type ProxyMember
- type ProxyProviderSubscription
- type RenderedContent
- type Repository
- func (r *Repository) CreateClashConfig(ctx context.Context, in CreateClashConfigSubscriptionInput) (ClashConfigSubscription, error)
- func (r *Repository) CreateProxyProvider(ctx context.Context, in CreateProxyProviderSubscriptionInput) (ProxyProviderSubscription, error)
- func (r *Repository) CreateRuleProvider(ctx context.Context, in CreateRuleProviderSubscriptionInput) (RuleProviderSubscription, error)
- func (r *Repository) CreateSystemProxyGroup(ctx context.Context, subscriptionID int64, in CreateClashConfigProxyGroupInput) (ClashConfigProxyGroup, error)
- func (r *Repository) DeleteClashConfig(ctx context.Context, id int64) error
- func (r *Repository) DeleteProxyProvider(ctx context.Context, id int64) error
- func (r *Repository) DeleteRuleProvider(ctx context.Context, id int64) error
- func (r *Repository) GetClashConfigByID(ctx context.Context, id int64) (ClashConfigSubscription, error)
- func (r *Repository) GetProxyProviderByID(ctx context.Context, id int64) (ProxyProviderSubscription, error)
- func (r *Repository) GetRuleProviderByID(ctx context.Context, id int64) (RuleProviderSubscription, error)
- func (r *Repository) ListClashConfigs(ctx context.Context) ([]ClashConfigSubscription, error)
- func (r *Repository) ListProxyProviders(ctx context.Context) ([]ProxyProviderSubscription, error)
- func (r *Repository) ListRuleProviders(ctx context.Context) ([]RuleProviderSubscription, error)
- func (r *Repository) ProviderReferencedByAnySubscription(ctx context.Context, providerID int64) (bool, error)
- func (r *Repository) UpdateClashConfig(ctx context.Context, id int64, in UpdateClashConfigSubscriptionInput) (ClashConfigSubscription, error)
- func (r *Repository) UpdateProxyProvider(ctx context.Context, id int64, in UpdateProxyProviderSubscriptionInput) (ProxyProviderSubscription, error)
- func (r *Repository) UpdateRuleProvider(ctx context.Context, id int64, in UpdateRuleProviderSubscriptionInput) (RuleProviderSubscription, error)
- type RuleProviderSubscription
- type Service
- func (s *Service) BuildClashConfigContent(ctx context.Context, id int64) (RenderedContent, error)
- func (s *Service) BuildProxyProviderContent(ctx context.Context, id int64) (RenderedContent, error)
- func (s *Service) BuildRuleProviderContent(ctx context.Context, id int64) (RenderedContent, error)
- func (s *Service) CreateClashConfig(ctx context.Context, in CreateClashConfigSubscriptionInput) (ClashConfigSubscription, error)
- func (s *Service) CreateProxyProvider(ctx context.Context, in CreateProxyProviderSubscriptionInput) (ProxyProviderSubscription, error)
- func (s *Service) CreateRuleProvider(ctx context.Context, in CreateRuleProviderSubscriptionInput) (RuleProviderSubscription, error)
- func (s *Service) DeleteClashConfig(ctx context.Context, id int64) error
- func (s *Service) DeleteProxyProvider(ctx context.Context, id int64) error
- func (s *Service) DeleteRuleProvider(ctx context.Context, id int64) error
- func (s *Service) GetClashConfigByID(ctx context.Context, id int64) (ClashConfigSubscription, error)
- func (s *Service) GetProxyProviderByID(ctx context.Context, id int64) (ProxyProviderSubscription, error)
- func (s *Service) GetRuleProviderByID(ctx context.Context, id int64) (RuleProviderSubscription, error)
- func (s *Service) ListClashConfigs(ctx context.Context) ([]ClashConfigSubscription, error)
- func (s *Service) ListProxyProviders(ctx context.Context) ([]ProxyProviderSubscription, error)
- func (s *Service) ListRuleProviders(ctx context.Context) ([]RuleProviderSubscription, error)
- func (s *Service) ProviderReferencedByAnySubscription(ctx context.Context, providerID int64) (bool, error)
- func (s *Service) UpdateClashConfig(ctx context.Context, id int64, in UpdateClashConfigSubscriptionInput) (ClashConfigSubscription, error)
- func (s *Service) UpdateProxyProvider(ctx context.Context, id int64, in UpdateProxyProviderSubscriptionInput) (ProxyProviderSubscription, error)
- func (s *Service) UpdateRuleProvider(ctx context.Context, id int64, in UpdateRuleProviderSubscriptionInput) (RuleProviderSubscription, error)
- type UpdateClashConfigSubscriptionInput
- type UpdateProxyProviderSubscriptionInput
- type UpdateRuleProviderSubscriptionInput
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrSubscriptionNameRequired = errors.New("subscription name is required") ErrProvidersRequired = errors.New("at least one provider is required") ErrReservedProxyGroup = errors.New("Proxies proxy-group cannot be deleted") ErrReservedProxiesRequired = errors.New("Proxies proxy-group is required at position 0") ErrReservedProxiesNotFirst = errors.New("Proxies proxy-group must stay first at position 0") ErrDuplicateRuleBinding = errors.New("internal proxy group already bound") ErrNotFound = errors.New("subscription not found") )
Functions ¶
This section is empty.
Types ¶
type ClashConfigProxyGroup ¶
type ClashConfigProxyGroup struct {
ID int64 `json:"id"`
Name string `json:"name"`
Type string `json:"type"`
Position int64 `json:"position"`
URL string `json:"url"`
Interval int64 `json:"interval"`
Proxies []ProxyMember `json:"proxies"`
BindInternalGroupID int64 `json:"bind_internal_proxy_group_id"`
IsSystem bool `json:"is_system"`
}
type ClashConfigSubscription ¶
type CreateClashConfigSubscriptionInput ¶
type CreateClashConfigSubscriptionInput struct {
Name string `json:"name"`
Providers []int64 `json:"providers"`
ProxyGroups []CreateClashConfigProxyGroupInput `json:"proxy_groups"`
}
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
func NewHandler ¶
func (*Handler) RegisterRoutes ¶
type ProxyMember ¶
type RenderedContent ¶
type Repository ¶
type Repository struct {
// contains filtered or unexported fields
}
func NewRepository ¶
func NewRepository(db *sql.DB) *Repository
func (*Repository) CreateClashConfig ¶
func (r *Repository) CreateClashConfig(ctx context.Context, in CreateClashConfigSubscriptionInput) (ClashConfigSubscription, error)
func (*Repository) CreateProxyProvider ¶
func (r *Repository) CreateProxyProvider(ctx context.Context, in CreateProxyProviderSubscriptionInput) (ProxyProviderSubscription, error)
func (*Repository) CreateRuleProvider ¶
func (r *Repository) CreateRuleProvider(ctx context.Context, in CreateRuleProviderSubscriptionInput) (RuleProviderSubscription, error)
func (*Repository) CreateSystemProxyGroup ¶
func (r *Repository) CreateSystemProxyGroup(ctx context.Context, subscriptionID int64, in CreateClashConfigProxyGroupInput) (ClashConfigProxyGroup, error)
func (*Repository) DeleteClashConfig ¶
func (r *Repository) DeleteClashConfig(ctx context.Context, id int64) error
func (*Repository) DeleteProxyProvider ¶
func (r *Repository) DeleteProxyProvider(ctx context.Context, id int64) error
func (*Repository) DeleteRuleProvider ¶
func (r *Repository) DeleteRuleProvider(ctx context.Context, id int64) error
func (*Repository) GetClashConfigByID ¶
func (r *Repository) GetClashConfigByID(ctx context.Context, id int64) (ClashConfigSubscription, error)
func (*Repository) GetProxyProviderByID ¶
func (r *Repository) GetProxyProviderByID(ctx context.Context, id int64) (ProxyProviderSubscription, error)
func (*Repository) GetRuleProviderByID ¶
func (r *Repository) GetRuleProviderByID(ctx context.Context, id int64) (RuleProviderSubscription, error)
func (*Repository) ListClashConfigs ¶
func (r *Repository) ListClashConfigs(ctx context.Context) ([]ClashConfigSubscription, error)
func (*Repository) ListProxyProviders ¶
func (r *Repository) ListProxyProviders(ctx context.Context) ([]ProxyProviderSubscription, error)
func (*Repository) ListRuleProviders ¶
func (r *Repository) ListRuleProviders(ctx context.Context) ([]RuleProviderSubscription, error)
func (*Repository) ProviderReferencedByAnySubscription ¶
func (*Repository) UpdateClashConfig ¶
func (r *Repository) UpdateClashConfig(ctx context.Context, id int64, in UpdateClashConfigSubscriptionInput) (ClashConfigSubscription, error)
func (*Repository) UpdateProxyProvider ¶
func (r *Repository) UpdateProxyProvider(ctx context.Context, id int64, in UpdateProxyProviderSubscriptionInput) (ProxyProviderSubscription, error)
func (*Repository) UpdateRuleProvider ¶
func (r *Repository) UpdateRuleProvider(ctx context.Context, id int64, in UpdateRuleProviderSubscriptionInput) (RuleProviderSubscription, error)
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func NewService(repo *Repository, providerRepo *provider.Repository, groupSvc *group.Service, ruleRepo *rule.Repository, templatePath string) *Service
func (*Service) BuildClashConfigContent ¶
func (*Service) BuildProxyProviderContent ¶
func (*Service) BuildRuleProviderContent ¶
func (*Service) CreateClashConfig ¶
func (s *Service) CreateClashConfig(ctx context.Context, in CreateClashConfigSubscriptionInput) (ClashConfigSubscription, error)
func (*Service) CreateProxyProvider ¶
func (s *Service) CreateProxyProvider(ctx context.Context, in CreateProxyProviderSubscriptionInput) (ProxyProviderSubscription, error)
func (*Service) CreateRuleProvider ¶
func (s *Service) CreateRuleProvider(ctx context.Context, in CreateRuleProviderSubscriptionInput) (RuleProviderSubscription, error)
func (*Service) DeleteClashConfig ¶
func (*Service) DeleteProxyProvider ¶
func (*Service) DeleteRuleProvider ¶
func (*Service) GetClashConfigByID ¶
func (*Service) GetProxyProviderByID ¶
func (*Service) GetRuleProviderByID ¶
func (*Service) ListClashConfigs ¶
func (s *Service) ListClashConfigs(ctx context.Context) ([]ClashConfigSubscription, error)
func (*Service) ListProxyProviders ¶
func (s *Service) ListProxyProviders(ctx context.Context) ([]ProxyProviderSubscription, error)
func (*Service) ListRuleProviders ¶
func (s *Service) ListRuleProviders(ctx context.Context) ([]RuleProviderSubscription, error)
func (*Service) ProviderReferencedByAnySubscription ¶
func (*Service) UpdateClashConfig ¶
func (s *Service) UpdateClashConfig(ctx context.Context, id int64, in UpdateClashConfigSubscriptionInput) (ClashConfigSubscription, error)
func (*Service) UpdateProxyProvider ¶
func (s *Service) UpdateProxyProvider(ctx context.Context, id int64, in UpdateProxyProviderSubscriptionInput) (ProxyProviderSubscription, error)
func (*Service) UpdateRuleProvider ¶
func (s *Service) UpdateRuleProvider(ctx context.Context, id int64, in UpdateRuleProviderSubscriptionInput) (RuleProviderSubscription, error)
type UpdateClashConfigSubscriptionInput ¶
type UpdateClashConfigSubscriptionInput struct {
Name string `json:"name"`
Providers []int64 `json:"providers"`
ProxyGroups []CreateClashConfigProxyGroupInput `json:"proxy_groups"`
}
Click to show internal directories.
Click to hide internal directories.