-
-
Notifications
You must be signed in to change notification settings - Fork 150
/
Copy pathencode_decode.go
144 lines (128 loc) · 4.38 KB
/
encode_decode.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
// Code generated by goa v3.15.2, DO NOT EDIT.
//
// tools HTTP server encoders and decoders
//
// Command:
// $ goa gen github.com/arduino/arduino-create-agent/design
package server
import (
"context"
"io"
"net/http"
toolsviews "github.com/arduino/arduino-create-agent/gen/tools/views"
goahttp "goa.design/goa/v3/http"
goa "goa.design/goa/v3/pkg"
)
// EncodeAvailableResponse returns an encoder for responses returned by the
// tools available endpoint.
func EncodeAvailableResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error {
return func(ctx context.Context, w http.ResponseWriter, v any) error {
res := v.(toolsviews.ToolCollection)
enc := encoder(ctx, w)
body := NewToolResponseCollection(res.Projected)
w.WriteHeader(http.StatusOK)
return enc.Encode(body)
}
}
// EncodeInstalledheadResponse returns an encoder for responses returned by the
// tools installedhead endpoint.
func EncodeInstalledheadResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error {
return func(ctx context.Context, w http.ResponseWriter, v any) error {
w.WriteHeader(http.StatusOK)
return nil
}
}
// EncodeInstalledResponse returns an encoder for responses returned by the
// tools installed endpoint.
func EncodeInstalledResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error {
return func(ctx context.Context, w http.ResponseWriter, v any) error {
res := v.(toolsviews.ToolCollection)
enc := encoder(ctx, w)
body := NewToolResponseCollection(res.Projected)
w.WriteHeader(http.StatusOK)
return enc.Encode(body)
}
}
// EncodeInstallResponse returns an encoder for responses returned by the tools
// install endpoint.
func EncodeInstallResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error {
return func(ctx context.Context, w http.ResponseWriter, v any) error {
res := v.(*toolsviews.Operation)
enc := encoder(ctx, w)
body := NewInstallResponseBody(res.Projected)
w.WriteHeader(http.StatusOK)
return enc.Encode(body)
}
}
// DecodeInstallRequest returns a decoder for requests sent to the tools
// install endpoint.
func DecodeInstallRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) {
return func(r *http.Request) (any, error) {
var (
body InstallRequestBody
err error
)
err = decoder(r).Decode(&body)
if err != nil {
if err == io.EOF {
return nil, goa.MissingPayloadError()
}
return nil, goa.DecodePayloadError(err.Error())
}
err = ValidateInstallRequestBody(&body)
if err != nil {
return nil, err
}
payload := NewInstallToolPayload(&body)
return payload, nil
}
}
// EncodeRemoveResponse returns an encoder for responses returned by the tools
// remove endpoint.
func EncodeRemoveResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error {
return func(ctx context.Context, w http.ResponseWriter, v any) error {
res := v.(*toolsviews.Operation)
enc := encoder(ctx, w)
body := NewRemoveResponseBody(res.Projected)
w.WriteHeader(http.StatusOK)
return enc.Encode(body)
}
}
// DecodeRemoveRequest returns a decoder for requests sent to the tools remove
// endpoint.
func DecodeRemoveRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) {
return func(r *http.Request) (any, error) {
var (
body RemoveRequestBody
err error
)
err = decoder(r).Decode(&body)
if err != nil {
if err == io.EOF {
return nil, goa.MissingPayloadError()
}
return nil, goa.DecodePayloadError(err.Error())
}
var (
packager string
name string
version string
params = mux.Vars(r)
)
packager = params["packager"]
name = params["name"]
version = params["version"]
payload := NewRemoveToolPayload(&body, packager, name, version)
return payload, nil
}
}
// marshalToolsviewsToolViewToToolResponse builds a value of type *ToolResponse
// from a value of type *toolsviews.ToolView.
func marshalToolsviewsToolViewToToolResponse(v *toolsviews.ToolView) *ToolResponse {
res := &ToolResponse{
Name: *v.Name,
Version: *v.Version,
Packager: *v.Packager,
}
return res
}