package main

import (
	"Advertisement_Panel/api"
	"fmt"
	"html/template"
	"net/http"
)

var templates *template.Template

func main() {
	templates, _ = template.ParseGlob("website/templates/*.html")

	fmt.Print("Now running server!\n")

	// Serves index
	http.HandleFunc("/", index_handler)

	// Serves json for html to find file names
	http.HandleFunc("/files", api.FileHandler)

	// Serves ascii page
	http.HandleFunc("/ascii", ascii_handler)

	// Serves images
	http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./static"))))

	http.Handle("/uploads/", http.StripPrefix("/uploads/", http.FileServer(http.Dir("./uploads"))))

	// Serves administration page
	http.HandleFunc("/admin/", admin_handler)

	// Handles image upload
	http.HandleFunc("/upload", api.UploadHandler)

	fmt.Print("Webserver running on http://localhost:8080\n")

	// Serves what ever the user is requesting base on above urls
	http.ListenAndServe(":8080", nil)

}

func index_handler(w http.ResponseWriter, r *http.Request) {
	templates.ExecuteTemplate(w, "images.html", nil)
}

func ascii_handler(w http.ResponseWriter, r *http.Request) {
	templates.ExecuteTemplate(w, "ascii.html", nil)
}

func admin_handler(w http.ResponseWriter, r *http.Request) {
	templates.ExecuteTemplate(w, "admin.html", nil)
}
