socialnetworknews-api

git clone git://archive.git.mtrnord.blog/SocialNetworkNews/socialnetworknews-api.git
Log | Files | Refs | LICENSE

commit 57f269698e11257e6d2d8ac6c0edacbbd526ea20
parent 037bd3ed5a0472887d2d74abe04440b9d60f4a4a
Author: MTRNord <mtrnord1@gmail.com>
Date:   Tue, 13 Mar 2018 19:34:43 +0100

Return 404 if file not found

Diffstat:
Mapi/webserver.go | 9+++++++--
Aerrors/tweets.go | 14++++++++++++++
2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/api/webserver.go b/api/webserver.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/SocialNetworkNews/SocialNetworkNews_API/config" "github.com/SocialNetworkNews/SocialNetworkNews_API/db" + ownErrors "github.com/SocialNetworkNews/SocialNetworkNews_API/errors" "github.com/SocialNetworkNews/SocialNetworkNews_API/twitter" "github.com/dgraph-io/badger" "github.com/gorilla/mux" @@ -27,7 +28,11 @@ func Yesterday(w http.ResponseWriter, r *http.Request) { tweets, err := getTweets() if err != nil { - http.Error(w, err.Error(), http.StatusInternalServerError) + if tErr, ok := err.(*ownErrors.TweetsError); ok { + http.Error(w, tErr.Error(), tErr.StatusCode()) + } else { + http.Error(w, err.Error(), http.StatusInternalServerError) + } } w.Header().Set("Content-Type", "application/json") w.Header().Set("API-VERSION", "0.0.0") @@ -261,7 +266,7 @@ func getTweets() ([]byte, error) { fo, err := os.Open(dataFilePath) if err != nil { - return nil, err + return nil, &ownErrors.TweetsError{err.Error(), 404} } // close fo on exit and check for its returned error diff --git a/errors/tweets.go b/errors/tweets.go @@ -0,0 +1,14 @@ +package errors + +type TweetsError struct { + err string //error description + statusCode int // HTTP Code +} + +func (e *TweetsError) Error() string { + return e.err +} + +func (e *TweetsError) StatusCode() int { + return e.statusCode +}