(w http.ResponseWriter, r *http.Request)
| 175 | } |
| 176 | |
| 177 | func (a *Api) handleTokens(w http.ResponseWriter, r *http.Request) { |
| 178 | token, err := extractToken("access_token", r) |
| 179 | if err != nil { |
| 180 | w.WriteHeader(401) |
| 181 | w.Write([]byte("No token provided")) |
| 182 | return |
| 183 | } |
| 184 | |
| 185 | tokenData, exists := a.db.GetTokenData(token) |
| 186 | if !exists { |
| 187 | w.WriteHeader(403) |
| 188 | w.Write([]byte("Not authorized")) |
| 189 | return |
| 190 | } |
| 191 | |
| 192 | if tokenData.Client != "" { |
| 193 | w.WriteHeader(403) |
| 194 | io.WriteString(w, "Token cannot be used to manage tokens") |
| 195 | return |
| 196 | } |
| 197 | |
| 198 | switch r.Method { |
| 199 | case "GET": |
| 200 | tokens := a.GetTokens(tokenData, r.Form) |
| 201 | json.NewEncoder(w).Encode(tokens) |
| 202 | case "POST": |
| 203 | r.ParseForm() |
| 204 | token, err := a.CreateToken(tokenData, r.Form) |
| 205 | if err != nil { |
| 206 | w.WriteHeader(500) |
| 207 | w.Write([]byte(err.Error())) |
| 208 | } |
| 209 | |
| 210 | io.WriteString(w, token) |
| 211 | default: |
| 212 | w.WriteHeader(405) |
| 213 | fmt.Fprintf(w, "Invalid method for /api/tokens") |
| 214 | } |
| 215 | } |
| 216 | |
| 217 | func (a *Api) handleClients(w http.ResponseWriter, r *http.Request) { |
| 218 |
nothing calls this directly
no test coverage detected