1616package handlers
1717
1818import (
19+ "fmt"
20+
1921 "github.com/go-openapi/runtime/middleware"
2022 client_native "github.com/haproxytech/client-native/v3"
2123 "github.com/haproxytech/client-native/v3/models"
@@ -53,6 +55,19 @@ type ReplaceBindHandlerImpl struct {
5355 ReloadAgent haproxy.IReloadAgent
5456}
5557
58+ func bindTypeParams (frontend * string , parentType * string , parentName * string ) (pType string , pName string , err error ) {
59+ if frontend != nil && * frontend != "" {
60+ return "frontend" , * frontend , nil
61+ }
62+ if parentType == nil || * parentType == "" {
63+ return "" , "" , fmt .Errorf ("parentType empty" )
64+ }
65+ if parentName == nil || * parentName == "" {
66+ return "" , "" , fmt .Errorf ("parentName empty" )
67+ }
68+ return * parentType , * parentName , nil
69+ }
70+
5671// Handle executing the request and returning a response
5772func (h * CreateBindHandlerImpl ) Handle (params bind.CreateBindParams , principal interface {}) middleware.Responder {
5873 t := ""
@@ -80,7 +95,12 @@ func (h *CreateBindHandlerImpl) Handle(params bind.CreateBindParams, principal i
8095 return bind .NewCreateBindDefault (int (* e .Code )).WithPayload (e )
8196 }
8297
83- err = configuration .CreateBind (params .Frontend , params .Data , t , v )
98+ pType , pName , err := bindTypeParams (params .Frontend , params .ParentType , params .ParentName )
99+ if err != nil {
100+ e := misc .HandleError (err )
101+ return bind .NewCreateBindDefault (int (* e .Code )).WithPayload (e )
102+ }
103+ err = configuration .CreateBind (pType , pName , params .Data , t , v )
84104 if err != nil {
85105 e := misc .HandleError (err )
86106 return bind .NewCreateBindDefault (int (* e .Code )).WithPayload (e )
@@ -127,7 +147,12 @@ func (h *DeleteBindHandlerImpl) Handle(params bind.DeleteBindParams, principal i
127147 return bind .NewDeleteBindDefault (int (* e .Code )).WithPayload (e )
128148 }
129149
130- err = configuration .DeleteBind (params .Name , params .Frontend , t , v )
150+ pType , pName , err := bindTypeParams (params .Frontend , params .ParentType , params .ParentName )
151+ if err != nil {
152+ e := misc .HandleError (err )
153+ return bind .NewDeleteBindDefault (int (* e .Code )).WithPayload (e )
154+ }
155+ err = configuration .DeleteBind (params .Name , pType , pName , t , v )
131156 if err != nil {
132157 e := misc .HandleError (err )
133158 return bind .NewDeleteBindDefault (int (* e .Code )).WithPayload (e )
@@ -160,7 +185,12 @@ func (h *GetBindHandlerImpl) Handle(params bind.GetBindParams, principal interfa
160185 return bind .NewGetBindDefault (int (* e .Code )).WithPayload (e )
161186 }
162187
163- v , b , err := configuration .GetBind (params .Name , params .Frontend , t )
188+ pType , pName , err := bindTypeParams (params .Frontend , params .ParentType , params .ParentName )
189+ if err != nil {
190+ e := misc .HandleError (err )
191+ return bind .NewGetBindDefault (int (* e .Code )).WithPayload (e )
192+ }
193+ v , b , err := configuration .GetBind (params .Name , pType , pName , t )
164194 if err != nil {
165195 e := misc .HandleError (err )
166196 return bind .NewGetBindDefault (int (* e .Code )).WithPayload (e )
@@ -181,7 +211,12 @@ func (h *GetBindsHandlerImpl) Handle(params bind.GetBindsParams, principal inter
181211 return bind .NewGetBindsDefault (int (* e .Code )).WithPayload (e )
182212 }
183213
184- v , bs , err := configuration .GetBinds (params .Frontend , t )
214+ pType , pName , err := bindTypeParams (params .Frontend , params .ParentType , params .ParentName )
215+ if err != nil {
216+ e := misc .HandleError (err )
217+ return bind .NewGetBindsDefault (int (* e .Code )).WithPayload (e )
218+ }
219+ v , bs , err := configuration .GetBinds (pType , pName , t )
185220 if err != nil {
186221 e := misc .HandleContainerGetError (err )
187222 if * e .Code == misc .ErrHTTPOk {
@@ -219,7 +254,12 @@ func (h *ReplaceBindHandlerImpl) Handle(params bind.ReplaceBindParams, principal
219254 return bind .NewReplaceBindDefault (int (* e .Code )).WithPayload (e )
220255 }
221256
222- err = configuration .EditBind (params .Name , params .Frontend , params .Data , t , v )
257+ pType , pName , err := bindTypeParams (params .Frontend , params .ParentType , params .ParentName )
258+ if err != nil {
259+ e := misc .HandleError (err )
260+ return bind .NewReplaceBindDefault (int (* e .Code )).WithPayload (e )
261+ }
262+ err = configuration .EditBind (params .Name , pType , pName , params .Data , t , v )
223263 if err != nil {
224264 e := misc .HandleError (err )
225265 return bind .NewReplaceBindDefault (int (* e .Code )).WithPayload (e )
0 commit comments