goCaptcha/serverRoutes.go
serverRoutes.goRaw
1package main
2
3import (
4 "encoding/json"
5 "fmt"
6 "image/jpeg"
7 "io/ioutil"
8 "net/http"
9
10 "github.com/gorilla/mux"
11)
12
13type Routes []Route
14
15var routes = Routes{
16 Route{
17 "Index",
18 "GET",
19 "/",
20 Index,
21 },
22 Route{
23 "GetImage",
24 "GET",
25 "/image/{imageName}",
26 GetImage,
27 },
28 Route{
29 "GetCaptcha",
30 "GET",
31 "/captcha",
32 GetCaptcha,
33 },
34}
35
36//ROUTES
37
38func Index(w http.ResponseWriter, r *http.Request) {
39 fmt.Fprintln(w, "ask for images in /r")
40}
41
42func GetImage(w http.ResponseWriter, r *http.Request) {
43 vars := mux.Vars(r)
44 imageName := vars["imageName"]
45
46 file, err := ioutil.ReadFile(serverConfig.ImgsFolder + "/" + imageName)
47 if err != nil {
48 fmt.Fprintln(w, err)
49 }
50
51 img, err := dataToPNG(file, imageName)
52
53 if err != nil {
54 fmt.Fprintln(w, "image "+imageName+" does not exist in server")
55 } else {
56 jpeg.Encode(w, img, nil) // Write to the ResponseWriter
57 }
58}
59func GetCaptcha(w http.ResponseWriter, r *http.Request) {
60
61 resp := ""
62 jsonResp, err := json.Marshal(resp)
63 check(err)
64 fmt.Fprintln(w, string(jsonResp))
65}