Add Rule Get API Methods, fix Create and Update

This commit is contained in:
Samuel Lorch 2023-05-13 22:48:13 +02:00
parent 139e385852
commit 4ab4ab37d5
3 changed files with 63 additions and 9 deletions

View file

@ -7,6 +7,24 @@ import (
"nfsense.net/nfsense/internal/definitions/firewall" "nfsense.net/nfsense/internal/definitions/firewall"
) )
type GetDestinationNATRuleParameters struct {
ID uint
}
type GetDestinationNATRuleResult struct {
firewall.DestinationNATRule
}
func (f *Firewall) GetDestinationNATRule(ctx context.Context, params GetDestinationNATRuleParameters) (GetDestinationNATRuleResult, error) {
if int(params.ID) >= len(f.ConfigManager.GetPendingConfig().Firewall.DestinationNATRules) {
return GetDestinationNATRuleResult{}, fmt.Errorf("DestinationNATRule does not Exist")
}
return GetDestinationNATRuleResult{
DestinationNATRule: f.ConfigManager.GetPendingConfig().Firewall.DestinationNATRules[params.ID],
}, nil
}
type GetDestinationNATRulesResult struct { type GetDestinationNATRulesResult struct {
DestinationNATRules []firewall.DestinationNATRule `json:"destination_nat_rules"` DestinationNATRules []firewall.DestinationNATRule `json:"destination_nat_rules"`
} }
@ -18,7 +36,7 @@ func (f *Firewall) GetDestinationNATRules(ctx context.Context, params struct{})
} }
type CreateDestinationNATRuleParameters struct { type CreateDestinationNATRuleParameters struct {
DestinationNATRule firewall.DestinationNATRule `json:"destination_nat_rule"` firewall.DestinationNATRule
} }
func (f *Firewall) CreateDestinationNATRule(ctx context.Context, params CreateDestinationNATRuleParameters) (struct{}, error) { func (f *Firewall) CreateDestinationNATRule(ctx context.Context, params CreateDestinationNATRuleParameters) (struct{}, error) {
@ -30,8 +48,8 @@ func (f *Firewall) CreateDestinationNATRule(ctx context.Context, params CreateDe
} }
type UpdateDestinationNATRuleParameters struct { type UpdateDestinationNATRuleParameters struct {
Index uint64 `json:"index"` Index uint64 `json:"index"`
DestinationNATRule firewall.DestinationNATRule `json:"destination_nat_rule"` firewall.DestinationNATRule
} }
func (f *Firewall) UpdateDestinationNATRule(ctx context.Context, params UpdateDestinationNATRuleParameters) (struct{}, error) { func (f *Firewall) UpdateDestinationNATRule(ctx context.Context, params UpdateDestinationNATRuleParameters) (struct{}, error) {

View file

@ -7,6 +7,24 @@ import (
"nfsense.net/nfsense/internal/definitions/firewall" "nfsense.net/nfsense/internal/definitions/firewall"
) )
type GetForwardRuleParameters struct {
ID uint
}
type GetForwardRuleResult struct {
firewall.ForwardRule
}
func (f *Firewall) GetForwardRule(ctx context.Context, params GetForwardRuleParameters) (GetForwardRuleResult, error) {
if int(params.ID) >= len(f.ConfigManager.GetPendingConfig().Firewall.ForwardRules) {
return GetForwardRuleResult{}, fmt.Errorf("ForwardRule does not Exist")
}
return GetForwardRuleResult{
ForwardRule: f.ConfigManager.GetPendingConfig().Firewall.ForwardRules[params.ID],
}, nil
}
type GetForwardRulesResult struct { type GetForwardRulesResult struct {
ForwardRules []firewall.ForwardRule `json:"forward_rules"` ForwardRules []firewall.ForwardRule `json:"forward_rules"`
} }
@ -18,7 +36,7 @@ func (f *Firewall) GetForwardRules(ctx context.Context, params struct{}) (GetFor
} }
type CreateForwardRuleParameters struct { type CreateForwardRuleParameters struct {
ForwardRule firewall.ForwardRule `json:"forward_rule"` firewall.ForwardRule
} }
func (f *Firewall) CreateForwardRule(ctx context.Context, params CreateForwardRuleParameters) (struct{}, error) { func (f *Firewall) CreateForwardRule(ctx context.Context, params CreateForwardRuleParameters) (struct{}, error) {
@ -30,8 +48,8 @@ func (f *Firewall) CreateForwardRule(ctx context.Context, params CreateForwardRu
} }
type UpdateForwardRuleParameters struct { type UpdateForwardRuleParameters struct {
Index uint64 `json:"index"` Index uint64 `json:"index"`
ForwardRule firewall.ForwardRule `json:"forward_rule"` firewall.ForwardRule
} }
func (f *Firewall) UpdateForwardRule(ctx context.Context, params UpdateForwardRuleParameters) (struct{}, error) { func (f *Firewall) UpdateForwardRule(ctx context.Context, params UpdateForwardRuleParameters) (struct{}, error) {

View file

@ -7,6 +7,24 @@ import (
"nfsense.net/nfsense/internal/definitions/firewall" "nfsense.net/nfsense/internal/definitions/firewall"
) )
type GetSourceNATRuleParameters struct {
ID uint
}
type GetSourceNATRuleResult struct {
firewall.SourceNATRule
}
func (f *Firewall) GetSourceNATRule(ctx context.Context, params GetSourceNATRuleParameters) (GetSourceNATRuleResult, error) {
if int(params.ID) >= len(f.ConfigManager.GetPendingConfig().Firewall.SourceNATRules) {
return GetSourceNATRuleResult{}, fmt.Errorf("SourceNATRule does not Exist")
}
return GetSourceNATRuleResult{
SourceNATRule: f.ConfigManager.GetPendingConfig().Firewall.SourceNATRules[params.ID],
}, nil
}
type GetSourceNATRulesResult struct { type GetSourceNATRulesResult struct {
SourceNATRules []firewall.SourceNATRule `json:"source_nat_rules"` SourceNATRules []firewall.SourceNATRule `json:"source_nat_rules"`
} }
@ -18,7 +36,7 @@ func (f *Firewall) GetSourceNATRules(ctx context.Context, params struct{}) (GetS
} }
type CreateSourceNATRuleParameters struct { type CreateSourceNATRuleParameters struct {
SourceNATRule firewall.SourceNATRule `json:"source_nat_rule"` firewall.SourceNATRule
} }
func (f *Firewall) CreateSourceNATRule(ctx context.Context, params CreateSourceNATRuleParameters) (struct{}, error) { func (f *Firewall) CreateSourceNATRule(ctx context.Context, params CreateSourceNATRuleParameters) (struct{}, error) {
@ -30,8 +48,8 @@ func (f *Firewall) CreateSourceNATRule(ctx context.Context, params CreateSourceN
} }
type UpdateSourceNATRuleParameters struct { type UpdateSourceNATRuleParameters struct {
Index uint64 `json:"index"` Index uint64 `json:"index"`
SourceNATRule firewall.SourceNATRule `json:"source_nat_rule"` firewall.SourceNATRule
} }
func (f *Firewall) UpdateSourceNATRule(ctx context.Context, params UpdateSourceNATRuleParameters) (struct{}, error) { func (f *Firewall) UpdateSourceNATRule(ctx context.Context, params UpdateSourceNATRuleParameters) (struct{}, error) {