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 }