func (processor *processor) Start() error { var errors qor.Errors processor.Initialize() if errors.AddError(processor.Validate()); !errors.HasError() { errors.AddError(processor.Commit()) } return errors }
func (processor *processor) Validate() error { var errors qor.Errors if processor.checkSkipLeft() { return nil } for _, fc := range processor.Resource.GetResource().validators { if errors.AddError(fc(processor.Result, processor.MetaValues, processor.Context)); !errors.HasError() { if processor.checkSkipLeft(errors.GetErrors()...) { break } } } return errors }
func (processor *processor) Commit() error { var errors qor.Errors errors.AddError(processor.decode()...) if processor.checkSkipLeft(errors.GetErrors()...) { return nil } for _, fc := range processor.Resource.GetResource().processors { if err := fc(processor.Result, processor.MetaValues, processor.Context); err != nil { if processor.checkSkipLeft(err) { break } errors.AddError(err) } } return errors }
func Decode(context *qor.Context, result interface{}, res Resourcer) error { var errors qor.Errors var err error var metaValues *MetaValues metaors := res.GetMetas([]string{}) if strings.Contains(context.Request.Header.Get("Content-Type"), "json") { metaValues, err = ConvertJSONToMetaValues(context.Request.Body, metaors) context.Request.Body.Close() } else { metaValues, err = ConvertFormToMetaValues(context.Request, metaors, "QorResource.") } errors.AddError(err) errors.AddError(DecodeToResource(res, result, metaValues, context).Start()) return errors }