package auth

import (
	"net/http"
	"time"
)

// HandleInfoRequest is an http.HandlerFunc for server information
// NOT an RFC specification.
func HandleInfoRequest(w http.ResponseWriter, r *http.Request, ctx Context) {
	r.ParseForm()

	code := r.Form.Get("code")

	if code == "" {
		// TODO: return error
		return
	}

	// load access data
	accessData, err := ctx.Tokens.GetAccess(code)
	if err != nil {
		// TODO: return error
		return
	}
	if accessData.Client.RedirectURI == "" {
		// TODO: return error
		return
	}
	if accessData.IsExpired() {
		// TODO: return error
		return
	}

	accessData.ExpiresIn = int32(accessData.CreatedAt.Add(time.Duration(accessData.ExpiresIn)*time.Second).Sub(time.Now()) / time.Second)
	// TODO: write accessData
}
