Browse Source

`check` endpoint

master
SeraphJACK 3 years ago
parent
commit
91e8dccd14
Signed by: SeraphJACK <seraphjack@outlook.com> GPG Key ID: 14162B46567AB06F
4 changed files with 28 additions and 9 deletions
  1. +18
    -0
      http/result.go
  2. +1
    -0
      http/server.go
  3. +6
    -6
      storage/storage.go
  4. +3
    -3
      storage/vote.go

+ 18
- 0
http/result.go View File

@@ -0,0 +1,18 @@
package http

import (
"encoding/json"
"fmt"
"net/http"
"votes/storage"
)

func checkResult(w http.ResponseWriter, _ *http.Request) {
if res, err := json.Marshal(storage.VoteResult); err != nil {
w.WriteHeader(500)
_, _ = fmt.Fprintf(w, "internal server error")
} else {
w.WriteHeader(200)
_, _ = w.Write(res)
}
}

+ 1
- 0
http/server.go View File

@@ -11,6 +11,7 @@ func Start(listen string) error {

router.HandleFunc("/challenge", tellChallenge)
router.HandleFunc("/submit", handleSubmit)
router.HandleFunc("/result", checkResult)
router.NotFoundHandler = http.FileServer(http.Dir("static"))

err := http.ListenAndServe(listen, router)


+ 6
- 6
storage/storage.go View File

@@ -8,15 +8,15 @@ import (
)

type Storage struct {
Result Result `json:"result"`
Result Result `json:"VoteResult"`
IpSet map[string]bool `json:"ip_set"`
}

func Init() error {
go autoSave()
file, err := os.Open("result.json")
file, err := os.Open("VoteResult.json")
if err != nil {
if f, err := os.Create("result.json"); err == nil {
if f, err := os.Create("VoteResult.json"); err == nil {
_ = f.Close()
} else {
return err
@@ -25,17 +25,17 @@ func Init() error {
}
defer file.Close()
decoder := json.NewDecoder(file)
return decoder.Decode(&result)
return decoder.Decode(&VoteResult)
}

func Save() error {
file, err := os.Create("result.json")
file, err := os.Create("VoteResult.json")
if err != nil {
return err
}
defer file.Close()
encoder := json.NewEncoder(file)
return encoder.Encode(Storage{Result: result, IpSet: ipSet})
return encoder.Encode(Storage{Result: VoteResult, IpSet: ipSet})
}

func autoSave() {


+ 3
- 3
storage/vote.go View File

@@ -5,12 +5,12 @@ type Result struct {
ZzzzIsNotDalao int `json:"not_dalao"`
}

var result Result
var VoteResult Result

func Vote(isDalao bool) {
if isDalao {
result.ZzzzIsDalao++
VoteResult.ZzzzIsDalao++
} else {
result.ZzzzIsNotDalao++
VoteResult.ZzzzIsNotDalao++
}
}

Loading…
Cancel
Save