moneygo/internal/handlers/errors.go

49 lines
955 B
Go
Raw Normal View History

package handlers
2015-06-25 22:36:58 -04:00
import (
"encoding/json"
"fmt"
2015-06-25 22:36:58 -04:00
"log"
"net/http"
2017-10-05 21:08:17 -04:00
"strings"
2015-06-25 22:36:58 -04:00
)
type Error struct {
ErrorId int
ErrorString string
}
func (e *Error) Error() string {
return fmt.Sprintf("Error %d: %s", e.ErrorId, e.ErrorString)
}
2017-10-05 21:08:17 -04:00
func (e *Error) Read(json_str string) error {
dec := json.NewDecoder(strings.NewReader(json_str))
return dec.Decode(e)
}
func (e *Error) Write(w http.ResponseWriter) error {
enc := json.NewEncoder(w)
return enc.Encode(e)
}
2015-06-25 22:36:58 -04:00
var error_codes = map[int]string{
1: "Not Signed In",
2: "Unauthorized Access",
3: "Invalid Request",
4: "User Exists",
// 5: "Connection Failed", //reserved for client-side error
6: "Import Error",
7: "In Use Error",
2015-06-25 22:36:58 -04:00
999: "Internal Error",
}
func NewError(error_code int) *Error {
2015-06-25 22:36:58 -04:00
msg, ok := error_codes[error_code]
if !ok {
2017-11-23 17:57:36 -05:00
log.Printf("Error: NewError received unknown error code of %d", error_code)
2015-06-25 22:36:58 -04:00
msg = error_codes[999]
}
return &Error{error_code, msg}
}