package tepapis

import (
	"fmt"
	"mime/multipart"
	"net/http"

	"github.com/gin-gonic/gin"
	"github.com/pingcap/tep/pkg/utils"
)

func (api *API) uploadCSVFile(c *gin.Context, fileKey string) []*multipart.FileHeader {
	// All file sizes add up to no more than 16m
	errParse := c.Request.ParseMultipartForm(1 << 24)
	if errParse != nil {
		msg := fmt.Sprintf("failed to alloc memory for mutlipart form, maximum file size allowed is 16M. err: %v", errParse)
		utils.SendMsg(c, nil, utils.NewAPIStatus(http.StatusBadRequest, msg))
		return nil
	}

	form := c.Request.MultipartForm

	files, ok := form.File[fileKey]
	if !ok {
		msg := fmt.Sprintf("failed to get file from form-data")
		utils.SendMsg(c, nil, utils.NewAPIStatus(http.StatusBadRequest, msg))
		return nil
	}

	return files
}
