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:
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
+}