github.com/weaviate/weaviate@v1.24.6/adapters/handlers/rest/operations/batch/batch_objects_create.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 // Code generated by go-swagger; DO NOT EDIT. 13 14 package batch 15 16 // This file was generated by the swagger tool. 17 // Editing this file might prove futile when you re-run the generate command 18 19 import ( 20 "context" 21 "encoding/json" 22 "net/http" 23 "strconv" 24 25 "github.com/go-openapi/errors" 26 "github.com/go-openapi/runtime/middleware" 27 "github.com/go-openapi/strfmt" 28 "github.com/go-openapi/swag" 29 "github.com/go-openapi/validate" 30 31 "github.com/weaviate/weaviate/entities/models" 32 ) 33 34 // BatchObjectsCreateHandlerFunc turns a function with the right signature into a batch objects create handler 35 type BatchObjectsCreateHandlerFunc func(BatchObjectsCreateParams, *models.Principal) middleware.Responder 36 37 // Handle executing the request and returning a response 38 func (fn BatchObjectsCreateHandlerFunc) Handle(params BatchObjectsCreateParams, principal *models.Principal) middleware.Responder { 39 return fn(params, principal) 40 } 41 42 // BatchObjectsCreateHandler interface for that can handle valid batch objects create params 43 type BatchObjectsCreateHandler interface { 44 Handle(BatchObjectsCreateParams, *models.Principal) middleware.Responder 45 } 46 47 // NewBatchObjectsCreate creates a new http.Handler for the batch objects create operation 48 func NewBatchObjectsCreate(ctx *middleware.Context, handler BatchObjectsCreateHandler) *BatchObjectsCreate { 49 return &BatchObjectsCreate{Context: ctx, Handler: handler} 50 } 51 52 /* 53 BatchObjectsCreate swagger:route POST /batch/objects batch objects batchObjectsCreate 54 55 Creates new Objects based on a Object template as a batch. 56 57 Register new Objects in bulk. Provided meta-data and schema values are validated. 58 */ 59 type BatchObjectsCreate struct { 60 Context *middleware.Context 61 Handler BatchObjectsCreateHandler 62 } 63 64 func (o *BatchObjectsCreate) ServeHTTP(rw http.ResponseWriter, r *http.Request) { 65 route, rCtx, _ := o.Context.RouteInfo(r) 66 if rCtx != nil { 67 *r = *rCtx 68 } 69 var Params = NewBatchObjectsCreateParams() 70 uprinc, aCtx, err := o.Context.Authorize(r, route) 71 if err != nil { 72 o.Context.Respond(rw, r, route.Produces, route, err) 73 return 74 } 75 if aCtx != nil { 76 *r = *aCtx 77 } 78 var principal *models.Principal 79 if uprinc != nil { 80 principal = uprinc.(*models.Principal) // this is really a models.Principal, I promise 81 } 82 83 if err := o.Context.BindValidRequest(r, route, &Params); err != nil { // bind params 84 o.Context.Respond(rw, r, route.Produces, route, err) 85 return 86 } 87 88 res := o.Handler.Handle(Params, principal) // actually handle the request 89 o.Context.Respond(rw, r, route.Produces, route, res) 90 91 } 92 93 // BatchObjectsCreateBody batch objects create body 94 // 95 // swagger:model BatchObjectsCreateBody 96 type BatchObjectsCreateBody struct { 97 98 // Define which fields need to be returned. Default value is ALL 99 Fields []*string `json:"fields" yaml:"fields"` 100 101 // objects 102 Objects []*models.Object `json:"objects" yaml:"objects"` 103 } 104 105 // Validate validates this batch objects create body 106 func (o *BatchObjectsCreateBody) Validate(formats strfmt.Registry) error { 107 var res []error 108 109 if err := o.validateFields(formats); err != nil { 110 res = append(res, err) 111 } 112 113 if err := o.validateObjects(formats); err != nil { 114 res = append(res, err) 115 } 116 117 if len(res) > 0 { 118 return errors.CompositeValidationError(res...) 119 } 120 return nil 121 } 122 123 var batchObjectsCreateBodyFieldsItemsEnum []interface{} 124 125 func init() { 126 var res []string 127 if err := json.Unmarshal([]byte(`["ALL","class","schema","id","creationTimeUnix"]`), &res); err != nil { 128 panic(err) 129 } 130 for _, v := range res { 131 batchObjectsCreateBodyFieldsItemsEnum = append(batchObjectsCreateBodyFieldsItemsEnum, v) 132 } 133 } 134 135 func (o *BatchObjectsCreateBody) validateFieldsItemsEnum(path, location string, value string) error { 136 if err := validate.EnumCase(path, location, value, batchObjectsCreateBodyFieldsItemsEnum, true); err != nil { 137 return err 138 } 139 return nil 140 } 141 142 func (o *BatchObjectsCreateBody) validateFields(formats strfmt.Registry) error { 143 if swag.IsZero(o.Fields) { // not required 144 return nil 145 } 146 147 for i := 0; i < len(o.Fields); i++ { 148 if swag.IsZero(o.Fields[i]) { // not required 149 continue 150 } 151 152 // value enum 153 if err := o.validateFieldsItemsEnum("body"+"."+"fields"+"."+strconv.Itoa(i), "body", *o.Fields[i]); err != nil { 154 return err 155 } 156 157 } 158 159 return nil 160 } 161 162 func (o *BatchObjectsCreateBody) validateObjects(formats strfmt.Registry) error { 163 if swag.IsZero(o.Objects) { // not required 164 return nil 165 } 166 167 for i := 0; i < len(o.Objects); i++ { 168 if swag.IsZero(o.Objects[i]) { // not required 169 continue 170 } 171 172 if o.Objects[i] != nil { 173 if err := o.Objects[i].Validate(formats); err != nil { 174 if ve, ok := err.(*errors.Validation); ok { 175 return ve.ValidateName("body" + "." + "objects" + "." + strconv.Itoa(i)) 176 } else if ce, ok := err.(*errors.CompositeError); ok { 177 return ce.ValidateName("body" + "." + "objects" + "." + strconv.Itoa(i)) 178 } 179 return err 180 } 181 } 182 183 } 184 185 return nil 186 } 187 188 // ContextValidate validate this batch objects create body based on the context it is used 189 func (o *BatchObjectsCreateBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { 190 var res []error 191 192 if err := o.contextValidateObjects(ctx, formats); err != nil { 193 res = append(res, err) 194 } 195 196 if len(res) > 0 { 197 return errors.CompositeValidationError(res...) 198 } 199 return nil 200 } 201 202 func (o *BatchObjectsCreateBody) contextValidateObjects(ctx context.Context, formats strfmt.Registry) error { 203 204 for i := 0; i < len(o.Objects); i++ { 205 206 if o.Objects[i] != nil { 207 if err := o.Objects[i].ContextValidate(ctx, formats); err != nil { 208 if ve, ok := err.(*errors.Validation); ok { 209 return ve.ValidateName("body" + "." + "objects" + "." + strconv.Itoa(i)) 210 } else if ce, ok := err.(*errors.CompositeError); ok { 211 return ce.ValidateName("body" + "." + "objects" + "." + strconv.Itoa(i)) 212 } 213 return err 214 } 215 } 216 217 } 218 219 return nil 220 } 221 222 // MarshalBinary interface implementation 223 func (o *BatchObjectsCreateBody) MarshalBinary() ([]byte, error) { 224 if o == nil { 225 return nil, nil 226 } 227 return swag.WriteJSON(o) 228 } 229 230 // UnmarshalBinary interface implementation 231 func (o *BatchObjectsCreateBody) UnmarshalBinary(b []byte) error { 232 var res BatchObjectsCreateBody 233 if err := swag.ReadJSON(b, &res); err != nil { 234 return err 235 } 236 *o = res 237 return nil 238 }