MCPcopy Create free account
hub / github.com/anchordotdev/cli / CreatePATToken

Method CreatePATToken

api/api.go:138–188  ·  view source on GitHub ↗
(ctx context.Context, deviceCode string)

Source from the content-addressed store, hash-verified

136}
137
138func (s *Session) CreatePATToken(ctx context.Context, deviceCode string) (string, error) {
139 reqBody := CreateCliTokenJSONRequestBody{
140 DeviceCode: deviceCode,
141 }
142
143 var buf bytes.Buffer
144 if err := json.NewEncoder(&buf).Encode(reqBody); err != nil {
145 return "", err
146 }
147
148 req, err := http.NewRequestWithContext(ctx, "POST", "/cli/pat-tokens", &buf)
149 if err != nil {
150 return "", err
151 }
152 req.Header.Set("Content-Type", "application/json")
153
154 res, err := s.Do(req)
155 if err != nil {
156 return "", err
157 }
158
159 requestId := res.Header.Get("X-Request-Id")
160
161 switch res.StatusCode {
162 case http.StatusOK:
163 var patTokens *AuthCliPatTokensResponse
164 if err = json.NewDecoder(res.Body).Decode(&patTokens); err != nil {
165 return "", err
166 }
167 return patTokens.PatToken, nil
168 case http.StatusServiceUnavailable:
169 return "", ErrTransient
170 case http.StatusBadRequest:
171 var errorsRes *Error
172 if err = json.NewDecoder(res.Body).Decode(&errorsRes); err != nil {
173 return "", err
174 }
175 switch errorsRes.Type {
176 case "urn:anchordev:api:cli-auth:authorization-pending":
177 return "", ErrTransient
178 case "urn:anchordev:api:cli-auth:expired-device-code":
179 return "", fmt.Errorf("Your authorization request has expired, please try again.")
180 case "urn:anchordev:api:cli-auth:incorrect-device-code":
181 return "", fmt.Errorf("Your authorization request was not found, please try again.")
182 default:
183 return "", fmt.Errorf("request [%s]: unexpected error: %s", requestId, errorsRes.Detail)
184 }
185 default:
186 return "", fmt.Errorf("request [%s]: unexpected response code: %d", requestId, res.StatusCode)
187 }
188}
189
190func (s *Session) CreateEAB(ctx context.Context, chainSlug, orgSlug, realmSlug, serviceSlug, subCASlug string) (*Eab, error) {
191 var eabInput CreateEabTokenJSONRequestBody

Callers 1

RunTUIMethod · 0.80

Calls 3

EncodeMethod · 0.80
SetMethod · 0.80
GetMethod · 0.80

Tested by

no test coverage detected