package http

import (
	"net/http"

	"github.com/gorilla/mux"
)

func (cfg *Config) Skin(response http.ResponseWriter, request *http.Request) {
	if mux.Vars(request)["converted"] == "" {
		cfg.Logger.IncCounter("skins.request", 1)
	}

	username := parseUsername(mux.Vars(request)["username"])
	rec, err := cfg.SkinsRepo.FindByUsername(username)
	if err != nil || rec.SkinId == 0 {
		http.Redirect(response, request, "http://skins.minecraft.net/MinecraftSkins/" + username + ".png", 301)
		return
	}

	http.Redirect(response, request, rec.Url, 301)
}

func (cfg *Config) SkinGET(response http.ResponseWriter, request *http.Request) {
	cfg.Logger.IncCounter("skins.get_request", 1)
	username := request.URL.Query().Get("name")
	if username == "" {
		response.WriteHeader(http.StatusBadRequest)
		return
	}

	mux.Vars(request)["username"] = username
	mux.Vars(request)["converted"] = "1"

	cfg.Skin(response, request)
}