Sha256: 6e4e943b8272786fd5bbf0bf85bf7a74f79a6c70be72015ea070fe987740d206
Contents?: true
Size: 899 Bytes
Versions: 1
Compression:
Stored size: 899 Bytes
Contents
module ChatWork class Multipart < ::Faraday::Multipart::Middleware self.mime_type = "multipart/form-data".freeze def create_multipart(env, params) original_body = super(env, params) # replace from Faraday::Parts::EpiloguePart to ChatWork::Multipart::EpiloguePart parts = original_body.instance_variable_get(:@parts) parts.pop parts << EpiloguePart.new(env.request.boundary) new_body = ::Faraday::CompositeReadIO.new(*parts) env.request_headers[Faraday::Env::ContentLength] = new_body.length.to_s new_body end end class EpiloguePart < ::Faraday::Parts::EpiloguePart def initialize(boundary) # rubocop:disable Lint/MissingSuper # NOTE: ChatWork doesn't accepts ending "\r\n\r\n" of payload... # @part = "--#{boundary}--\r\n\r\n" @part = "--#{boundary}--\r\n" @io = StringIO.new(@part) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
chatwork-1.0.0 | lib/chatwork/multipart.rb |