Skip to content
This repository was archived by the owner on Dec 11, 2020. It is now read-only.

Commit 0d91332

Browse files
committed
Expose #to_json on a transfer
1 parent 626a3fc commit 0d91332

File tree

4 files changed

+33
-3
lines changed

4 files changed

+33
-3
lines changed

lib/we_transfer/remote_file.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@ module RemoteFile
33
class FileMismatchError < StandardError; end
44
class NoIoError < StandardError; end
55

6-
class Multipart < ::Ks.strict(:chunks, :chunk_size); end
6+
class Multipart < ::Ks.strict(:chunks, :chunk_size)
7+
def to_h
8+
%i[chunks chunk_size].each_with_object({}) do |prop, memo|
9+
memo[prop] = send(prop)
10+
end
11+
end
12+
end
713

814
def self.upgrade(files:, files_response:)
915
files_response.each do |file_response|

lib/we_transfer/transfer.rb

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ class NoFilesAddedError < StandardError; end
55

66
extend Forwardable
77

8-
attr_reader :files, :id, :state, :url
8+
attr_reader :files, :id, :state, :url, :message
99

1010
class << self
1111
extend Forwardable
@@ -84,6 +84,19 @@ def as_request_params
8484
}
8585
end
8686

87+
def to_json
88+
to_h.to_json
89+
end
90+
91+
def to_h
92+
prepared = %i[id state url message].each_with_object({}) do |prop, memo|
93+
memo[prop] = send(prop)
94+
end
95+
96+
prepared[:files] = files.map(&:to_h)
97+
prepared
98+
end
99+
87100
private
88101

89102
def_delegator self, :remote_transfer_params

lib/we_transfer/we_transfer_file.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module WeTransfer
22
class WeTransferFile
3-
attr_reader :name, :id, :io, :multipart
3+
attr_reader :name, :id, :io, :multipart, :size
44

55
def initialize(name: nil, size: nil, io: nil)
66
@io = MiniIO.new(io)
@@ -16,5 +16,14 @@ def as_request_params
1616
size: @size,
1717
}
1818
end
19+
20+
def to_h
21+
prepared = %i[name size id].each_with_object({}) do |prop, memo|
22+
memo[prop] = send(prop)
23+
end
24+
prepared[:multipart] = multipart.to_h
25+
26+
prepared
27+
end
1928
end
2029
end

spec/features/client_creates_a_transfer_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
transfer = client.transfer
2020

21+
transfer.to_json
22+
2123
expect(transfer.url)
2224
.to be_nil
2325

0 commit comments

Comments
 (0)