package httphandlers

import (
	"fmt"
	"net/http"

	"github.com/fiskerinc/cloud-services/pkg/utils"
)

// MethodAll to handle all http method
const MethodAll = "*"

// CheckMethod middleware to enforce method
func CheckMethod(method string, next http.HandlerFunc) http.HandlerFunc {
	wrapper := func(w http.ResponseWriter, r *http.Request) {
		if method != r.Method && method != MethodAll {
			utils.RespError(w, http.StatusBadRequest, fmt.Sprintf("Not %s method", method))
			return
		}
		next.ServeHTTP(w, r)
	}

	return wrapper
}
