first coomit
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
package rest
|
||||
|
||||
import (
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/gorilla/mux"
|
||||
"nbarest/lib/persistence"
|
||||
"net/http"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func NewPlayerServiceHandler(handler persistence.DatabaseHandler) *playerServiceHandler{
|
||||
return &playerServiceHandler{
|
||||
dbhandler: handler,
|
||||
}
|
||||
}
|
||||
|
||||
type playerServiceHandler struct{
|
||||
dbhandler persistence.DatabaseHandler
|
||||
}
|
||||
|
||||
func (ph *playerServiceHandler) FindPlayerHandler(w http.ResponseWriter,r *http.Request){
|
||||
fmt.Println("FindPlayerHandler")
|
||||
vars:=mux.Vars(r)
|
||||
criteria,ok:=vars["SearchCriteria"]
|
||||
if !ok{
|
||||
w.WriteHeader(400)
|
||||
fmt.Fprintln(w,"error")
|
||||
return
|
||||
}
|
||||
|
||||
searchkey,ok:=vars["search"]
|
||||
if !ok{
|
||||
w.WriteHeader(400)
|
||||
fmt.Fprintln(w,"error")
|
||||
return
|
||||
}
|
||||
|
||||
var player persistence.Player
|
||||
var err error
|
||||
|
||||
switch strings.ToLower(criteria) {
|
||||
case "name":
|
||||
player,err=ph.dbhandler.FindPlayerByName(searchkey)
|
||||
case "id":
|
||||
id,err:=hex.DecodeString(searchkey)
|
||||
if err==nil{
|
||||
player,err=ph.dbhandler.FindPlayer(id)
|
||||
}
|
||||
}
|
||||
if err!=nil{
|
||||
fmt.Fprintln(w,`{"error"} "%s"`,err)
|
||||
return
|
||||
}
|
||||
fmt.Println("find"+searchkey)
|
||||
w.Header().Set("Content-Type","application/json;charset=utf8")
|
||||
json.NewEncoder(w).Encode(&player)
|
||||
}
|
||||
|
||||
func (ph *playerServiceHandler) NewPlayerHandler(w http.ResponseWriter, r *http.Request){
|
||||
fmt.Println("NewPlayerHandler")
|
||||
player:= persistence.Player{}
|
||||
err:=json.NewDecoder(r.Body).Decode(&player)
|
||||
if err!=nil{
|
||||
w.WriteHeader(500)
|
||||
fmt.Fprintln(w,`{"error"}`)
|
||||
return
|
||||
}
|
||||
|
||||
id,err:=ph.dbhandler.AddPlayer(player)
|
||||
if nil!=err{
|
||||
w.WriteHeader(500)
|
||||
fmt.Fprintln(w,`{"error"}`)
|
||||
return
|
||||
}
|
||||
fmt.Fprint(w,`{"id":%d}`,id)
|
||||
}
|
||||
|
||||
func (ph *playerServiceHandler) FindAllPlayerHandler(w http.ResponseWriter,r *http.Request){
|
||||
fmt.Println("FindAllPlayerHandler")
|
||||
players,err:= ph.dbhandler.FindAllAvailablePlayers()
|
||||
if err!=nil{
|
||||
w.WriteHeader(500)
|
||||
fmt.Fprintln(w,`{"error"}`)
|
||||
return
|
||||
}
|
||||
|
||||
w.Header().Set("Content-Type", "application/json;charset=utf8")
|
||||
err=json.NewEncoder(w).Encode(&players)
|
||||
if err!=nil{
|
||||
w.WriteHeader(500)
|
||||
fmt.Fprintln(w,`{"error"}`)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user