arnaucube
arnaucube/goCaptchaPublic Self-hosted repository
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}