d0f89e5361cb28145a4d58a393c3502b959e940e
[nonrtric/plt/sme.git] / eventsapi-server.gen.go
1 // Package eventsapi provides primitives to interact with the openapi HTTP API.
2 //
3 // Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
4 package eventsapi
5
6 import (
7         "bytes"
8         "compress/gzip"
9         "encoding/base64"
10         "fmt"
11         "net/http"
12         "net/url"
13         "path"
14         "strings"
15
16         "github.com/deepmap/oapi-codegen/pkg/runtime"
17         "github.com/getkin/kin-openapi/openapi3"
18         "github.com/labstack/echo/v4"
19 )
20
21 // ServerInterface represents all server handlers.
22 type ServerInterface interface {
23
24         // (POST /{subscriberId}/subscriptions)
25         PostSubscriberIdSubscriptions(ctx echo.Context, subscriberId string) error
26
27         // (DELETE /{subscriberId}/subscriptions/{subscriptionId})
28         DeleteSubscriberIdSubscriptionsSubscriptionId(ctx echo.Context, subscriberId string, subscriptionId string) error
29 }
30
31 // ServerInterfaceWrapper converts echo contexts to parameters.
32 type ServerInterfaceWrapper struct {
33         Handler ServerInterface
34 }
35
36 // PostSubscriberIdSubscriptions converts echo context to params.
37 func (w *ServerInterfaceWrapper) PostSubscriberIdSubscriptions(ctx echo.Context) error {
38         var err error
39         // ------------- Path parameter "subscriberId" -------------
40         var subscriberId string
41
42         err = runtime.BindStyledParameterWithLocation("simple", false, "subscriberId", runtime.ParamLocationPath, ctx.Param("subscriberId"), &subscriberId)
43         if err != nil {
44                 return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter subscriberId: %s", err))
45         }
46
47         // Invoke the callback with all the unmarshalled arguments
48         err = w.Handler.PostSubscriberIdSubscriptions(ctx, subscriberId)
49         return err
50 }
51
52 // DeleteSubscriberIdSubscriptionsSubscriptionId converts echo context to params.
53 func (w *ServerInterfaceWrapper) DeleteSubscriberIdSubscriptionsSubscriptionId(ctx echo.Context) error {
54         var err error
55         // ------------- Path parameter "subscriberId" -------------
56         var subscriberId string
57
58         err = runtime.BindStyledParameterWithLocation("simple", false, "subscriberId", runtime.ParamLocationPath, ctx.Param("subscriberId"), &subscriberId)
59         if err != nil {
60                 return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter subscriberId: %s", err))
61         }
62
63         // ------------- Path parameter "subscriptionId" -------------
64         var subscriptionId string
65
66         err = runtime.BindStyledParameterWithLocation("simple", false, "subscriptionId", runtime.ParamLocationPath, ctx.Param("subscriptionId"), &subscriptionId)
67         if err != nil {
68                 return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter subscriptionId: %s", err))
69         }
70
71         // Invoke the callback with all the unmarshalled arguments
72         err = w.Handler.DeleteSubscriberIdSubscriptionsSubscriptionId(ctx, subscriberId, subscriptionId)
73         return err
74 }
75
76 // This is a simple interface which specifies echo.Route addition functions which
77 // are present on both echo.Echo and echo.Group, since we want to allow using
78 // either of them for path registration
79 type EchoRouter interface {
80         CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
81         DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
82         GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
83         HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
84         OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
85         PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
86         POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
87         PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
88         TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
89 }
90
91 // RegisterHandlers adds each server route to the EchoRouter.
92 func RegisterHandlers(router EchoRouter, si ServerInterface) {
93         RegisterHandlersWithBaseURL(router, si, "")
94 }
95
96 // Registers handlers, and prepends BaseURL to the paths, so that the paths
97 // can be served under a prefix.
98 func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) {
99
100         wrapper := ServerInterfaceWrapper{
101                 Handler: si,
102         }
103
104         router.POST(baseURL+"/:subscriberId/subscriptions", wrapper.PostSubscriberIdSubscriptions)
105         router.DELETE(baseURL+"/:subscriberId/subscriptions/:subscriptionId", wrapper.DeleteSubscriberIdSubscriptionsSubscriptionId)
106
107 }
108
109 // Base64 encoded, gzipped, json marshaled Swagger object
110 var swaggerSpec = []string{
111
112         "H4sIAAAAAAAC/+xZ4Y7iOPJ/Fcv7/zAjZZKGnv7PDt8YoGeiQw0i9Jz2ZlrIJBXwTrCztkMP10K6d7in",
113         "uNe4R7knOdkOEEIC3XArre5mP+y0HNevqlxVvyqbJxzyRcoZMCVx6wnLcA4LYv5shyFI2eFMCZ4MeULD",
114         "VZ9K1fuu9FeSJIMYt7484f8TEOMWHgfN981mc9JpD/3biRWe5NITKz5pD313RRbJT95Oq5er9Gr04bXz",
115         "hFPBUxCKgrGMpNSP9B9qlQJuYakEZTO8XjubFT79FUKF1w8OjkCGgqaKcoZbeASpAKn1IjUHBN8VMEk5",
116         "QzEXiBgLUGhNQKm2gYJ0sYMF/JZRARFufcnVP6wdbHztLYGZI9nXNORS0mkCaEmSDCQiAtAbFPRGn/1O",
117         "T5/EpP257ffbH/q9FjIYEglIiIIIKW6sI0tCEzKlCVUrxGMkQSxpCKg99CUisQJhtu0vC0BpNk2onEPk",
118         "ljTe353UmbFztWasXu+w2x5XqgznhM0AUVbEQ5TFXCyIPkkNpSH8u8+DP/VGk8Hdh0F71O11q9Cs7JJ/",
119         "A4E4m3IiIvvBBOoA6vb2uVhxvAGLBV/s4IpOathOe+wP7ibBfafTC4K6M5aZSbQ4S4yG0DhaPuoj8Ldt",
120         "v38/qg1hTGgC0QnotrFw0hncjUeD/mQ46PudX44EyuRGGhEFplRMelaUy+rA1+fpPScxz7ehkATt+/Gn",
121         "wcj/iz3ZUU+vdutsEFA8UqM/U3Mu6F+3i4W0kVosN/CUGfbgTyZiKnhMk00kDlN7PBgO+oOPv0w++V3/",
122         "7uOkM+rVwWqLQgG54WIT3NwvrVTxlCd8tkJzGlE2K1blZttZjFRl6IsP/j9sYJG8vjLsYGDZQpN9JWFj",
123         "B9fQavmLCSt2cCWFlde3fFRCOWSW+g05N2joIxVe/3nPlZOFUtqTZ3G+WpOMNV83iA9Oua0X+2wXFKHJ",
124         "Ybct9HViSwKB3o8iI2B6eGmICMOOEnrQMFNGazvIvGQ40cPQ2rETgTy0yo+AKRpT00LKiYcdTBUsZMUg",
125         "4+AFZb792NieBxGCrDbqLCEc0brjyAKBXKRzzFP+iUZw6qzGeVl+MlWphXetqM9nVRbvWlXCZyZYWzMr",
126         "x8s+n80om9nk3wofny/9ohEn/c0D1R763Z2pFaYXvlbEGBG54z40XeXxuD3t4dBKTQILdty1oMrYEy4e",
127         "DsvFOruliQLxgjqLjUBFmUH8zNLQxwXfUy41lccZC83Oi4rkv7omqwJoYnfHtX821Y9HkCHKIrqkUUaS",
128         "PJoGAbECxGFMYZ+Jj3HBAXOvHSsuny9pyjGbbp2wd7+TUS1IIAGSZyIEPU88zmk4N1uKXiK6Gzr+9be/",
129         "56exlaNbfOxUXDuL18OSqVt/H+riFRQEzoxXUOVsTeBsaVfkaA4yhWivpmUFV52IWM4ep2rGaBnBbwXg",
130         "Dl8sOOsSRerZbgQpF4qymb+b9/bz6rhfZzh00pViKnVBKsq25Veg94am92d4eC8ozrMKpBqDPFHTASgz",
131         "KYsMdJPZOiz0ao5iMt7mTMgFbBlWb5HAIkSQ0tv2ioJIFEFMmblOmlt6Ng0TkklA79z/d1GuOCaJBH2J",
132         "4AuqdAVxNQfxSKXJwfysppwnQJit5lSHEKJbICoTUG6DN+8azzqn4ABn7eBHmEoefjMn1uEsprMzo/Dn",
133         "Q6ByrW/zqS7+VUVfmo+OVby5+/BMJzsSWQKyfMchxe5V0X1rXsocnKOONKjecHwaGdndE11xx0eR0Q73",
134         "dP86fFUrGXZ4fFoMvisQjCRdHlaU+/XH4RCNA9R87zabTfS58c69dq+QjbhpvLeCLOCRi2/mKcPsv+NC",
135         "zac8Y5G5E2IHZyLBLTxXKm153uPjo3s9S1OXi5kXq9QLUgilR0Q4p0vwmu8nEgQF6Vmlnh16Y35ondav",
136         "tVqG3WtSC8LIDBbAlPuV/fMfqHnVbDjWvIGYEZa/MpAEDYlQDIREr9oj/4OD2mM/cFCnE7Qd1BsHvoPG",
137         "Qdf8M27r/3Veu19ZO0mQoLO5uV3rrNlcdRVViT5iG2p7AZ/YYWgJQlq7G27TvXpDknRO3KZ2j6fASEr1",
138         "gbtX7pVOPaLmJh7ek9wykB+tvaKXZkPK7Y0rJEkyJeE3s3iEQp9yDnOnPFr95NXsXBehc4kPPFoZTZyp",
139         "/JmWpGmSC3u/SqvAZu+pfnA4Xa33s1gTsFmQKWfSFlbz6u1hFtxx1LEWoVeF18CiY6/1IV9fvXsheW11",
140         "e1rWQPx8AcTPGuLt1dXZEFrWQDQugGhYiOsLIK4txNsLIN4aiMYFjjSsI40LHGlYRxo3F0DcGIjm+/Mh",
141         "mu81xM0FeXFj8+LmgqDe2KBGEJMsUWfDbOTX5r/yD0YdAUSBvu0yeHzO+K2bsG7BZHNVwUMuVVAgxGCP",
142         "DjVv6n5kZ/Ivpy82Oyg9x+o9mnj1DEIWpscXVOEyOzkFqitfYx6c34819+44z2LNxu9tQFWcI/Qq2NHx",
143         "7nk83uvUr7GD50Ci/BbV53VzueZ4Qpmd4+5H/iaEDB6TlYWHaHtfcxAJQy7MU/bmlwslslBPti30RFI6",
144         "4lytvZCkNH5jR09v2Tjabbcf8+vo+kUZsf5B/j/I/3+G/B38wlIy9Z6AgqpnYb3+3Cebw55h5Wu7RlB+",
145         "Y/qj9BDnuO7948h/69uj5mPm7Nx9YVM7NY6P51ATpn3r0IKocG74ufTC6EeISmSzIXJ/jO5/SPb+QXoV",
146         "E6/9qWtDHPbVo3bWwA5eEkHJNNm+L+l9tqJyo8ybiWx5HnwnizQBN+QLXB63csHSA2PxdfFG88X+W442",
147         "+GH97wAAAP//6q1GObMmAAA=",
148 }
149
150 // GetSwagger returns the content of the embedded swagger specification file
151 // or error if failed to decode
152 func decodeSpec() ([]byte, error) {
153         zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
154         if err != nil {
155                 return nil, fmt.Errorf("error base64 decoding spec: %s", err)
156         }
157         zr, err := gzip.NewReader(bytes.NewReader(zipped))
158         if err != nil {
159                 return nil, fmt.Errorf("error decompressing spec: %s", err)
160         }
161         var buf bytes.Buffer
162         _, err = buf.ReadFrom(zr)
163         if err != nil {
164                 return nil, fmt.Errorf("error decompressing spec: %s", err)
165         }
166
167         return buf.Bytes(), nil
168 }
169
170 var rawSpec = decodeSpecCached()
171
172 // a naive cached of a decoded swagger spec
173 func decodeSpecCached() func() ([]byte, error) {
174         data, err := decodeSpec()
175         return func() ([]byte, error) {
176                 return data, err
177         }
178 }
179
180 // Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
181 func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
182         var res = make(map[string]func() ([]byte, error))
183         if len(pathToFile) > 0 {
184                 res[pathToFile] = rawSpec
185         }
186
187         return res
188 }
189
190 // GetSwagger returns the Swagger specification corresponding to the generated code
191 // in this file. The external references of Swagger specification are resolved.
192 // The logic of resolving external references is tightly connected to "import-mapping" feature.
193 // Externally referenced files must be embedded in the corresponding golang packages.
194 // Urls can be supported but this task was out of the scope.
195 func GetSwagger() (swagger *openapi3.T, err error) {
196         var resolvePath = PathToRawSpec("")
197
198         loader := openapi3.NewLoader()
199         loader.IsExternalRefsAllowed = true
200         loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
201                 var pathToFile = url.String()
202                 pathToFile = path.Clean(pathToFile)
203                 getSpec, ok := resolvePath[pathToFile]
204                 if !ok {
205                         err1 := fmt.Errorf("path not found: %s", pathToFile)
206                         return nil, err1
207                 }
208                 return getSpec()
209         }
210         var specData []byte
211         specData, err = rawSpec()
212         if err != nil {
213                 return
214         }
215         swagger, err = loader.LoadFromData(specData)
216         if err != nil {
217                 return
218         }
219         return
220 }