add response structs
diff --git a/api.go b/api.go index 63a9a29..d740efb 100644 --- a/api.go +++ b/api.go
@@ -48,6 +48,84 @@ Type string `json:"type"` } +type Attribute struct { + Name string `json:"name"` + Value string `json:"value"` + kind string `json:"kind"` +} + +type ClientIdDetails struct { + ClientId string `json:"clientId"` + ClientSecret string `json:"clientSecret"` + RedirectUris []string `json:"redirectUris"` + Status string `json:"status"` + Attributes []Attribute `json:"attributes"` +} + +type DeveloperDetails struct { + Id string `json:"id"` + UserName string `json:"userName"` + FirstName string `json:"firstName"` + LastName string `json:"lastName"` + Email string `json:"email"` + Status string `json:"status"` + Apps []string `json:"apps"` + CreatedAt int `json:"createdAt"` + CreatedBy string `json:"createdBy"` + LastModifiedAt int `json:"lastModifiedAt"` + LastModifiedBy string `json:"lastModifiedBy"` + Company string `json:"company"` + Attributes []Attribute `json:"attributes"` +} + +type CompanyDetails struct { + Id string `json:"id"` + Name string `json:"name"` + DisplayName string `json:"displayName"` + Status string `json:"status"` + Apps []string `json:"apps"` + CreatedAt int `json:"createdAt"` + CreatedBy string `json:"createdBy"` + LastModifiedAt int `json:"lastModifiedAt"` + LastModifiedBy string `json:"lastModifiedBy"` + Attributes []Attribute `json:"attributes"` +} + +type AppDetails struct { + Id string `json:"id"` + Name string `json:"name"` + AccessType string `json:"accessType"` + CallbackUrl string `json:"callbackUrl"` + DisplayName string `json:"displayName"` + Status string `json:"status"` + ApiProducts []string `json:"apiProducts"` + AppFamily string `json:"appFamily"` + CreatedAt int `json:"createdAt"` + CreatedBy string `json:"createdBy"` + LastModifiedAt int `json:"lastModifiedAt"` + LastModifiedBy string `json:"lastModifiedBy"` + Company string `json:"company"` + Attributes []Attribute `json:"attributes"` +} + +type ApiProductDetails struct { + Id string `json:"id"` + Name string `json:"name"` + DisplayName string `json:"displayName"` + QuotaLimit int `json:"quotaLimit"` + QuotaInterval int `json:"quotaInterval"` + QuotaTimeUnit int `json:"quotaTimeUnit"` + Status string `json:"status"` + CreatedAt int `json:"createdAt"` + CreatedBy string `json:"createdBy"` + LastModifiedAt int `json:"lastModifiedAt"` + LastModifiedBy string `json:"lastModifiedBy"` + Company string `json:"company"` + Environments []string `json:"environments"` + ApiProxies []string `json:"apiProxies"` + Attributes []Attribute `json:"attributes"` +} + // handle client API func handleRequest(w http.ResponseWriter, r *http.Request) { @@ -66,9 +144,10 @@ } f := r.Form - elems := []string{"action", "key", "uriPath", "scopeuuid"} + elems := []string{"action", "key", "uriPath", "organizationName", "environmentName", "apiProxyName"} for _, elem := range elems { - if f.Get(elem) == "" { + if _, ok := f[elem]; !ok { + log.Debug("Input params Incomplete: " + elem) w.WriteHeader(http.StatusBadRequest) w.Write([]byte(fmt.Sprintf("Missing element: %s", elem))) return @@ -91,14 +170,16 @@ // returns []byte to be written to client func verifyAPIKey(f url.Values) ([]byte, error) { - key := f.Get("key") - scopeuuid := f.Get("scopeuuid") - path := f.Get("uriPath") action := f.Get("action") + key := f.Get("key") + path := f.Get("uriPath") + organizationName := f.Get("organizationName") + environmentName := f.Get("environmentName") + apiProxyName := f.Get("apiProxyName") + validateAgainstApiProxiesAndEnvs := f.Get("validateAgainstApiProxiesAndEnvs") + if action != "verify" { - if key == "" || scopeuuid == "" || path == "" || action != "verify" { - log.Debug("Input params Invalid/Incomplete") - reason := "Input Params Incomplete or Invalid" + reason := "action must be 'verify'" errorCode := "INCORRECT_USER_INPUT" return errorResponse(reason, errorCode) }