module DingSDK::Utils
def self.serialize_request_body(request, request_field_name, serialization_method)
def self.serialize_request_body(request, request_field_name, serialization_method) return ['', nil, nil] if request.nil? return serialize_content_type(request_field_name, SERIALIZATION_METHOD_TO_CONTENT_TYPE[serialization_method], request) if !request.respond_to?(:fields) || !request.respond_to?(request_field_name) request_val = request.send(request_field_name) request_fields = request.fields request_metadata = nil request_fields.each do |f| if f.name == request_field_name request_metadata = f.metadata[:request] break end end raise StandardError, 'invalid request type' if request_metadata.nil? serialize_content_type( :request, request_metadata.fetch(:media_type, 'application/octet-stream'), request_val ) end