Module: Safrano::MediaEntity
- Defined in:
- lib/odata/entity.rb
Instance Method Summary collapse
- #edit_media ⇒ Object
- #media_src ⇒ Object
-
#metadata_h ⇒ Object
media entity metadata for json h.
- #odata_delete(req) ⇒ Object
-
#odata_media_value_get(req) ⇒ Object
real implementation for returning $value for a media entity.
-
#odata_media_value_put(req) ⇒ Object
real implementation for replacing $value for a media entity.
- #values_for_odata ⇒ Object
Instance Method Details
#edit_media ⇒ Object
323 324 325 |
# File 'lib/odata/entity.rb', line 323 def edit_media "#{uri}/$value" end |
#media_src ⇒ Object
318 319 320 321 |
# File 'lib/odata/entity.rb', line 318 def media_src version = self.class.media_handler.ressource_version(self) "#{uri}/$value?version=#{version}" end |
#metadata_h ⇒ Object
media entity metadata for json h
310 311 312 313 314 315 316 |
# File 'lib/odata/entity.rb', line 310 def { uri: uri, type: type_name, media_src: media_src, edit_media: edit_media, content_type: @values[:content_type] } end |
#odata_delete(req) ⇒ Object
333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 |
# File 'lib/odata/entity.rb', line 333 def odata_delete(req) if req.accept?(APPJSON) # delete the MR # delegate to the media handler on collection(ie class) level # TODO error handling self.class.media_handler.odata_delete(entity: self) # delete the relation(s) to parent(s) (if any) and then entity odata_delete_relation_and_entity(req, @navattr_reflection, @nav_parent) # result [200, EMPTY_HASH, [{ 'd' => req.service.get_emptycoll_odata_h }.to_json]] else # TODO: other formats 415 end end |
#odata_media_value_get(req) ⇒ Object
real implementation for returning $value for a media entity
350 351 352 353 |
# File 'lib/odata/entity.rb', line 350 def odata_media_value_get(req) # delegate to the media handler on collection(ie class) level self.class.media_handler.odata_get(request: req, entity: self) end |
#odata_media_value_put(req) ⇒ Object
real implementation for replacing $value for a media entity
356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 |
# File 'lib/odata/entity.rb', line 356 def odata_media_value_put(req) model = self.class req.with_media_data do |data, mimetype, _filename| emdata = { content_type: mimetype } if req.in_changeset set_fields(emdata, model.data_fields, missing: :skip) save(transaction: false) else update_fields(emdata, model.data_fields, missing: :skip) end model.media_handler.replace_file(data: data, entity: self) ARY_204_EMPTY_HASH_ARY end end |
#values_for_odata ⇒ Object
327 328 329 330 331 |
# File 'lib/odata/entity.rb', line 327 def values_for_odata ret = values.dup ret.delete(:content_type) ret end |