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"
)
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 {
DestinationNATRules []firewall.DestinationNATRule `json:"destination_nat_rules"`
}
@ -18,7 +36,7 @@ func (f *Firewall) GetDestinationNATRules(ctx context.Context, params struct{})
}
type CreateDestinationNATRuleParameters struct {
DestinationNATRule firewall.DestinationNATRule `json:"destination_nat_rule"`
firewall.DestinationNATRule
}
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 {
Index uint64 `json:"index"`
DestinationNATRule firewall.DestinationNATRule `json:"destination_nat_rule"`
Index uint64 `json:"index"`
firewall.DestinationNATRule
}
func (f *Firewall) UpdateDestinationNATRule(ctx context.Context, params UpdateDestinationNATRuleParameters) (struct{}, error) {

View file

@ -7,6 +7,24 @@ import (
"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 {
ForwardRules []firewall.ForwardRule `json:"forward_rules"`
}
@ -18,7 +36,7 @@ func (f *Firewall) GetForwardRules(ctx context.Context, params struct{}) (GetFor
}
type CreateForwardRuleParameters struct {
ForwardRule firewall.ForwardRule `json:"forward_rule"`
firewall.ForwardRule
}
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 {
Index uint64 `json:"index"`
ForwardRule firewall.ForwardRule `json:"forward_rule"`
Index uint64 `json:"index"`
firewall.ForwardRule
}
func (f *Firewall) UpdateForwardRule(ctx context.Context, params UpdateForwardRuleParameters) (struct{}, error) {

View file

@ -7,6 +7,24 @@ import (
"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 {
SourceNATRules []firewall.SourceNATRule `json:"source_nat_rules"`
}
@ -18,7 +36,7 @@ func (f *Firewall) GetSourceNATRules(ctx context.Context, params struct{}) (GetS
}
type CreateSourceNATRuleParameters struct {
SourceNATRule firewall.SourceNATRule `json:"source_nat_rule"`
firewall.SourceNATRule
}
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 {
Index uint64 `json:"index"`
SourceNATRule firewall.SourceNATRule `json:"source_nat_rule"`
Index uint64 `json:"index"`
firewall.SourceNATRule
}
func (f *Firewall) UpdateSourceNATRule(ctx context.Context, params UpdateSourceNATRuleParameters) (struct{}, error) {