From bc9051fd1a17e793647cf309c973a7feefebd98f Mon Sep 17 00:00:00 2001 From: KushBlazingJudah <59340248+KushBlazingJudah@users.noreply.github.com> Date: Tue, 2 Nov 2021 16:10:57 -0300 Subject: down to the main package it seems --- db/redis.go | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 db/redis.go (limited to 'db/redis.go') diff --git a/db/redis.go b/db/redis.go new file mode 100644 index 0000000..873ca27 --- /dev/null +++ b/db/redis.go @@ -0,0 +1,68 @@ +package db + +import ( + "bufio" + "fmt" + "net/http" + "os" + + "github.com/FChannel0/FChannel-Server/config" + "github.com/gomodule/redigo/redis" +) + +var Cache redis.Conn + +func InitCache() error { + conn, err := redis.DialURL(config.Redis) + Cache = conn + return err +} + +func CloseCache() error { + return Cache.Close() +} + +func CheckSession(w http.ResponseWriter, r *http.Request) (interface{}, error) { + c, err := r.Cookie("session_token") + + if err != nil { + if err == http.ErrNoCookie { + w.WriteHeader(http.StatusUnauthorized) + return nil, err + } + + w.WriteHeader(http.StatusBadRequest) + return nil, err + } + + sessionToken := c.Value + + response, err := Cache.Do("GET", sessionToken) + + if err != nil { + w.WriteHeader(http.StatusInternalServerError) + return nil, err + } + if response == nil { + w.WriteHeader(http.StatusUnauthorized) + return nil, err + } + + return response, nil +} + +func GetClientKey() (string, error) { + file, err := os.Open("clientkey") + if err != nil { + return "", err + } + defer file.Close() + + scanner := bufio.NewScanner(file) + var line string + for scanner.Scan() { + line = fmt.Sprintf("%s", scanner.Text()) + } + + return line, nil +} -- cgit v1.2.3