Return HTTP status 201 for created resources (#148)

Have the controller return status 201 for created resources, and have the client check for 201 response on created resources.

#143
This commit is contained in:
Robert Herhold
2017-03-12 20:05:19 -07:00
committed by Soam Vasani
parent a6869ab746
commit e1cb5f6e09
5 changed files with 16 additions and 4 deletions
+12 -4
View File
@@ -84,6 +84,14 @@ func (c *Client) handleResponse(resp *http.Response) ([]byte, error) {
return body, err
}
func (c *Client) handleCreateResponse(resp *http.Response) ([]byte, error) {
if resp.StatusCode != 201 {
return nil, fission.MakeErrorFromHTTP(resp)
}
body, err := ioutil.ReadAll(resp.Body)
return body, err
}
func (c *Client) FunctionCreate(f *fission.Function) (*fission.Metadata, error) {
orig := f.Code
f.Code = base64.StdEncoding.EncodeToString([]byte(f.Code))
@@ -100,7 +108,7 @@ func (c *Client) FunctionCreate(f *fission.Function) (*fission.Metadata, error)
}
defer resp.Body.Close()
body, err := c.handleResponse(resp)
body, err := c.handleCreateResponse(resp)
if err != nil {
return nil, err
}
@@ -232,7 +240,7 @@ func (c *Client) HTTPTriggerCreate(t *fission.HTTPTrigger) (*fission.Metadata, e
}
defer resp.Body.Close()
body, err := c.handleResponse(resp)
body, err := c.handleCreateResponse(resp)
if err != nil {
return nil, err
}
@@ -339,7 +347,7 @@ func (c *Client) EnvironmentCreate(env *fission.Environment) (*fission.Metadata,
}
defer resp.Body.Close()
body, err := c.handleResponse(resp)
body, err := c.handleCreateResponse(resp)
if err != nil {
return nil, err
}
@@ -446,7 +454,7 @@ func (c *Client) WatchCreate(w *fission.Watch) (*fission.Metadata, error) {
}
defer resp.Body.Close()
body, err := c.handleResponse(resp)
body, err := c.handleCreateResponse(resp)
if err != nil {
return nil, err
}
+1
View File
@@ -71,6 +71,7 @@ func (api *API) EnvironmentApiCreate(w http.ResponseWriter, r *http.Request) {
return
}
w.WriteHeader(http.StatusCreated)
api.respondWithSuccess(w, resp)
}
+1
View File
@@ -77,6 +77,7 @@ func (api *API) FunctionApiCreate(w http.ResponseWriter, r *http.Request) {
return
}
w.WriteHeader(http.StatusCreated)
api.respondWithSuccess(w, resp)
}
+1
View File
@@ -83,6 +83,7 @@ func (api *API) HTTPTriggerApiCreate(w http.ResponseWriter, r *http.Request) {
return
}
w.WriteHeader(http.StatusCreated)
api.respondWithSuccess(w, resp)
}
+1
View File
@@ -71,6 +71,7 @@ func (api *API) WatchApiCreate(w http.ResponseWriter, r *http.Request) {
return
}
w.WriteHeader(http.StatusCreated)
api.respondWithSuccess(w, resp)
}