Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "encoding/json"
- "github.com/gorilla/mux"
- "log"
- "net/http"
- )
- type Reply struct {
- Summary string
- }
- var replies map [ string ] Reply
- func Create( w http.ResponseWriter, r *http.Request ) {
- vars := mux.Vars( r )
- user := vars[ "user" ]
- decoder := json.NewDecoder( r.Body )
- var reply Reply
- if err := decoder.Decode( &reply ) ; err == nil {
- w.WriteHeader( http.StatusCreated )
- replies[ user ] = reply
- }else{
- w.WriteHeader( http.StatusBadRequest )
- }
- }
- func handleRequests() {
- router := mux.NewRouter().StrictSlash( true )
- router.HandleFunc( "/outoffice/{user}", Create ).Methods( "POST" )
- router.HandleFunc( "/outoffice/{user}", Read ).Methods( "GET" )
- log.Fatal( http.ListenAndServe( ":8888", router) )
- }
- func main(){
- replies = make( map [string ] Reply)
- handleRequests()
- }
- func Read ( w http.ResponseWriter, r *http.Request ) {
- vars := mux.Vars(r)
- user := vars[ "user" ]
- if reply, ok := replies[user]; ok {
- w.WriteHeader(http.StatusOK)
- if enc, err := json.Marshal(reply);err == nil{
- w.Write( []byte(enc))
- }else{
- w.WriteHeader(http.StatusInternalServerError)
- }
- }else{
- w.WriteHeader(http.StatusNotFound)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement