package cookie

import (
	"errors"
	"net/http"
	"time"

	"git.1248.nz/1248/Otfe/misc/b64"
)

func Create(w http.ResponseWriter, name string, value string) {
	c := &http.Cookie{Name: name, Value: b64.Encode(value)}
	http.SetCookie(w, c)
}

func Read(r *http.Request, name string) (string, error) {
	c, err := r.Cookie(name)
	if err != nil {
		return "", errors.New("Cookie not found")
	}
	value, err := b64.Decode(c.Value)
	if err != nil {
		return "", errors.New("Failed to decode cookie")
	}
	return value, nil
}

func Delete(w http.ResponseWriter, name string) {
	http.SetCookie(w, &http.Cookie{Name: name, MaxAge: -1, Expires: time.Unix(1, 0)})

}