github.com/kotovmak/go-admin@v1.1.1/plugins/admin/controller/api_create.go (about)

     1  package controller
     2  
     3  import (
     4  	"github.com/kotovmak/go-admin/context"
     5  	"github.com/kotovmak/go-admin/modules/file"
     6  	"github.com/kotovmak/go-admin/plugins/admin/modules/constant"
     7  	"github.com/kotovmak/go-admin/plugins/admin/modules/guard"
     8  	"github.com/kotovmak/go-admin/plugins/admin/modules/response"
     9  )
    10  
    11  func (h *Handler) ApiCreate(ctx *context.Context) {
    12  	param := guard.GetNewFormParam(ctx)
    13  
    14  	if len(param.MultiForm.File) > 0 {
    15  		err := file.GetFileEngine(h.config.FileUploadEngine.Name).Upload(param.MultiForm)
    16  		if err != nil {
    17  			response.Error(ctx, err.Error())
    18  			return
    19  		}
    20  	}
    21  
    22  	err := param.Panel.InsertData(param.Value())
    23  	if err != nil {
    24  		response.Error(ctx, err.Error())
    25  		return
    26  	}
    27  
    28  	response.Ok(ctx)
    29  }
    30  
    31  func (h *Handler) ApiCreateForm(ctx *context.Context) {
    32  
    33  	var (
    34  		params           = guard.GetShowNewFormParam(ctx)
    35  		prefix, paramStr = params.Prefix, params.Param.GetRouteParamStr()
    36  		panel            = h.table(prefix, ctx)
    37  		formInfo         = panel.GetNewFormInfo()
    38  		infoUrl          = h.routePathWithPrefix("api_info", prefix) + paramStr
    39  		newUrl           = h.routePathWithPrefix("api_new", prefix)
    40  		referer          = ctx.Referer()
    41  		f                = panel.GetActualNewForm()
    42  	)
    43  
    44  	if referer != "" && !isInfoUrl(referer) && !isNewUrl(referer, ctx.Query(constant.PrefixKey)) {
    45  		infoUrl = referer
    46  	}
    47  
    48  	response.OkWithData(ctx, map[string]interface{}{
    49  		"panel": formInfo,
    50  		"urls": map[string]string{
    51  			"info": infoUrl,
    52  			"new":  newUrl,
    53  		},
    54  		"pk":     panel.GetPrimaryKey().Name,
    55  		"header": f.HeaderHtml,
    56  		"footer": f.FooterHtml,
    57  		"prefix": h.config.PrefixFixSlash(),
    58  		"token":  h.authSrv().AddToken(),
    59  		"operation_footer": formFooter("new", f.IsHideContinueEditCheckBox, f.IsHideContinueNewCheckBox,
    60  			f.IsHideResetButton, f.FormNewBtnWord),
    61  	})
    62  }