pcloud 0.1.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +63 -4
- data/README.md +62 -37
- data/lib/pcloud/client.rb +33 -20
- data/lib/pcloud/files/file_handler.rb +32 -16
- data/lib/pcloud/request.rb +34 -37
- data/lib/pcloud/version.rb +1 -1
- data/lib/pcloud.rb +9 -11
- metadata +4 -5
- data/lib/pcloud/resource.rb +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f947200228e5097393b62dfec894cb23446ab98aa6a5cae771df06f7aa857157
|
4
|
+
data.tar.gz: a112e53a402bf4ff3712d97c4ebf6bab0a1d45344c3cec64c7166c530cec2d4d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9268db7b79edd81d07ab7e4e6f927749dd862ec4de3ebb1abcaf32198c2dcf1844e28a6b3c884ccf0776df3e2cd2024ae0593a093bd9c92b2f296d8e08886ab
|
7
|
+
data.tar.gz: e21f80afd09d7e397835c2ab2d6e88bb76f30999b5e2da60f53ed942bf11976bba044554b2c74c97659803b5a8e7215302d2f4d0290940678d934c5cb64749eb
|
data/CHANGELOG.md
CHANGED
@@ -1,14 +1,73 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
|
3
|
+
### [0.3.1](https://www.github.com/7urkm3n/pcloud/compare/v0.3.0...v0.3.1) (2021-09-04)
|
4
|
+
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
* version update ([9bf5268](https://www.github.com/7urkm3n/pcloud/commit/9bf52681a94e6b17ec721778bfaeee39c1750a36))
|
9
|
+
|
10
|
+
## [0.3.0](https://www.github.com/7urkm3n/pcloud/compare/v0.2.0...v0.3.0) (2021-09-04)
|
11
|
+
|
12
|
+
|
13
|
+
### ⚠ BREAKING CHANGES
|
4
14
|
|
15
|
+
* initialization
|
16
|
+
|
17
|
+
### Bug Fixes
|
18
|
+
|
19
|
+
* initialization ([6dc7735](https://www.github.com/7urkm3n/pcloud/commit/6dc77359c4bd3003ad05ed54705bfa70a6a95e62))
|
20
|
+
|
21
|
+
## [0.2.0](https://www.github.com/7urkm3n/pcloud/compare/v0.1.0...v0.2.0) (2021-09-04)
|
22
|
+
|
23
|
+
|
24
|
+
### ⚠ BREAKING CHANGES
|
25
|
+
|
26
|
+
* major update
|
5
27
|
|
6
28
|
### Features
|
7
29
|
|
8
|
-
*
|
30
|
+
* major update ([3c1a191](https://www.github.com/7urkm3n/pcloud/commit/3c1a1914606391739f08e29c264528ba3d02d112))
|
9
31
|
|
32
|
+
## 0.1.0 (2021-08-19)
|
33
|
+
|
34
|
+
### Features
|
35
|
+
|
36
|
+
- version 0.1.0 ([bafbe4b](https://www.github.com/7urkm3n/pcloud/commit/bafbe4b1d0301eb99446c703176eb35d6dc41336))
|
10
37
|
|
11
38
|
### Bug Fixes
|
12
39
|
|
13
|
-
|
14
|
-
|
40
|
+
- fixing workflow ([858cab4](https://www.github.com/7urkm3n/pcloud/commit/858cab495be548013c3e61756e626ce17cd38db3))
|
41
|
+
- workflows works, testing version auto bump ([9de8276](https://www.github.com/7urkm3n/pcloud/commit/9de82767c31c1ae003e268910b23108bba4f2e8c))
|
42
|
+
|
43
|
+
#### v0.0.4
|
44
|
+
|
45
|
+
##### Updates
|
46
|
+
|
47
|
+
- Minor changes
|
48
|
+
- Upload and Download added and avilable now
|
49
|
+
- Post method is avilable now.
|
50
|
+
- Upload/Download async version is on work.
|
51
|
+
|
52
|
+
#### v0.0.3
|
53
|
+
|
54
|
+
##### Updates
|
55
|
+
|
56
|
+
- Minor updates
|
57
|
+
- Upload and Download added - needs maintain
|
58
|
+
- Post method fixed and added back
|
59
|
+
|
60
|
+
#### v0.0.2
|
61
|
+
|
62
|
+
##### Updates
|
63
|
+
|
64
|
+
- Minor updates
|
65
|
+
- Test files added
|
66
|
+
- Removed `Post` method temporarily
|
67
|
+
|
68
|
+
#### v0.0.1
|
69
|
+
|
70
|
+
##### Publish
|
71
|
+
|
72
|
+
- Available get Method
|
73
|
+
- Incoming {Upload|Download} files
|
data/README.md
CHANGED
@@ -2,25 +2,28 @@
|
|
2
2
|
|
3
3
|
This Gem provides a Ruby interface to [Pcloud.com](https://docs.pcloud.com).
|
4
4
|
|
5
|
-
[![Build Status](https://github.com/7urkm3n/pcloud/workflows/
|
5
|
+
[![Build Status](https://github.com/7urkm3n/pcloud/workflows/release/badge.svg?branch=main)](https://github.com/7urkm3n/pcloud/actions?query=workflow%3Arelease) [![Gem Downloads](https://badgen.net/rubygems/dt/pcloud)](https://rubygems.org/gems/pcloud) [![Gem Version](https://badge.fury.io/rb/pcloud.svg)](https://badge.fury.io/rb/pcloud)
|
6
6
|
|
7
7
|
<!-- [![Gem Version](https://badgen.net/rubygems/v/pcloud)](https://rubygems.org/gems/pcloud) -->
|
8
8
|
|
9
|
+
##### Want to contribute? [Doc Link](https://github.com/7urkm3n/pcloud/CONTRIBUTE.md)
|
10
|
+
|
9
11
|
## Installation and Configuration
|
10
12
|
|
11
13
|
Add `pcloud` to your Gemfile, and then run `bundle install`
|
12
14
|
|
13
|
-
```
|
15
|
+
```ruby
|
14
16
|
gem 'pcloud'
|
15
17
|
```
|
16
18
|
|
17
19
|
or install via gem
|
18
20
|
|
19
|
-
```
|
21
|
+
```bash
|
20
22
|
gem install pcloud
|
21
23
|
```
|
22
24
|
|
23
25
|
###### Rails
|
26
|
+
|
24
27
|
to generate `Rails` initializer file
|
25
28
|
|
26
29
|
```bash
|
@@ -35,87 +38,109 @@ config/initializers/pcloud.rb
|
|
35
38
|
|
36
39
|
### Instantiating a client
|
37
40
|
|
38
|
-
```
|
41
|
+
```ruby
|
39
42
|
require 'pcloud'
|
40
43
|
|
41
44
|
pcloud = Pcloud::Client.new(
|
42
45
|
username: 'email',
|
43
46
|
password: 'password',
|
44
|
-
)
|
45
|
-
```
|
47
|
+
).authenticate
|
46
48
|
|
49
|
+
pcloud.get("listfolder", folderid: 0)
|
50
|
+
```
|
47
51
|
|
48
52
|
### Global configuration
|
49
53
|
|
50
54
|
The library can also be configured globally on the `Pcloud` class.
|
51
55
|
|
52
|
-
```
|
56
|
+
```ruby
|
53
57
|
Pcloud.username = 'email'
|
54
58
|
Pcloud.password = 'password'
|
59
|
+
Pcloud.authenticate
|
60
|
+
|
61
|
+
Pcloud.get("listfolder", folderid: 0)
|
55
62
|
```
|
56
63
|
|
57
|
-
|
64
|
+
### Logging
|
58
65
|
|
59
66
|
By default errors are logged in STDOUT level, also `Rails.logger` available.
|
60
67
|
|
61
|
-
```
|
68
|
+
```ruby
|
62
69
|
Pcloud.logger = Rails.logger
|
63
|
-
```
|
70
|
+
```
|
71
|
+
|
72
|
+
### Working with methods
|
64
73
|
|
65
|
-
|
74
|
+
Available methods:
|
66
75
|
|
67
|
-
|
76
|
+
- <b> Get </b>
|
77
|
+
- <b> Post </b>
|
78
|
+
- <b> File handling </b>
|
68
79
|
|
69
|
-
|
80
|
+
###### addition!
|
70
81
|
|
82
|
+
> Some apis need to be `raw` format, just add `raw` in params. `params: {fileid: ..987, raw: true}`
|
83
|
+
> For example `gettextfile` https://docs.pcloud.com/methods/streaming/gettextfile.html
|
71
84
|
|
72
|
-
#### Get
|
85
|
+
#### Get method
|
73
86
|
|
74
|
-
```
|
87
|
+
```ruby
|
75
88
|
Pcloud.get("getip")
|
76
89
|
Pcloud.get("getdigest")
|
77
90
|
|
78
91
|
# with params
|
79
|
-
|
92
|
+
params = {folderid: 0}
|
93
|
+
Pcloud.get("listfolder", params)
|
80
94
|
```
|
81
|
-
<!-- Pcloud.get("createfolder", folderid: 0, name: "new folder name", ...) -->
|
82
|
-
|
83
|
-
#### Post methods
|
84
95
|
|
85
|
-
|
86
|
-
# if any of pcloud endpoints requires payload on POST request, please create an issue.
|
96
|
+
#### Post method
|
87
97
|
|
88
|
-
|
89
|
-
|
98
|
+
```ruby
|
99
|
+
payload = {}
|
100
|
+
params = {folderid: 0, name: "new folder name"}
|
101
|
+
Pcloud.post("createfolder", payload, params)
|
90
102
|
```
|
91
103
|
|
92
|
-
|
104
|
+
### [File methods](https://docs.pcloud.com/methods/file/)
|
105
|
+
|
93
106
|
##### [Download File](https://docs.pcloud.com/methods/file/downloadfile.html)
|
94
107
|
|
95
|
-
```
|
96
|
-
#
|
108
|
+
```ruby
|
109
|
+
# optional params: filename, destination
|
110
|
+
# destination by default current_path
|
111
|
+
Pcloud.file.download({fileid: 987532135})
|
97
112
|
|
98
113
|
Pcloud.file.download(
|
99
|
-
|
100
|
-
destination: "#{Dir.pwd}/Downloads",
|
101
|
-
filename: "hehe.txt"
|
114
|
+
fileid: 987532135, #required
|
115
|
+
destination: "#{Dir.pwd}/Downloads", #optional
|
116
|
+
filename: "hehe.txt" #optional
|
102
117
|
)
|
103
118
|
```
|
104
119
|
|
105
|
-
##### [
|
120
|
+
##### [Download Folder](#)
|
106
121
|
|
107
|
-
```
|
108
|
-
#
|
109
|
-
#
|
122
|
+
```ruby
|
123
|
+
# optional params: filename, destination
|
124
|
+
# destination by default current_path
|
125
|
+
Pcloud.file.download_folder({folderid: 123456789})
|
126
|
+
```
|
127
|
+
|
128
|
+
##### [Upload File](https://docs.pcloud.com/methods/file/uploadfile.html)
|
110
129
|
|
111
|
-
|
130
|
+
```ruby
|
112
131
|
params = {
|
113
|
-
folderid: 0,
|
114
|
-
|
132
|
+
folderid: 0, #required
|
133
|
+
nopartial: 1,
|
115
134
|
}
|
116
|
-
|
135
|
+
# multiple uploads
|
136
|
+
file1 = File.open("./Rakefile")
|
137
|
+
file2 = File.open("./README.md")
|
138
|
+
file3 = File.open("./Gemfile")
|
139
|
+
payload = { files: [file1,file2,file3] }
|
140
|
+
|
117
141
|
Pcloud.file.upload(params, payload)
|
118
142
|
```
|
119
143
|
|
120
144
|
### Supported Ruby versions
|
145
|
+
|
121
146
|
2.2+
|
data/lib/pcloud/client.rb
CHANGED
@@ -1,51 +1,64 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'rest-client'
|
3
|
+
require_relative './request'
|
4
|
+
require_relative "./files/file_handler"
|
3
5
|
|
4
6
|
module Pcloud
|
5
7
|
class Client
|
6
8
|
attr_writer :username, :password
|
9
|
+
attr_accessor :auth_token
|
7
10
|
|
8
11
|
def initialize(options = {})
|
9
12
|
@username, @password = options.values_at(:username, :password)
|
13
|
+
@auth_token = options[:auth_token]
|
10
14
|
end
|
11
15
|
|
12
|
-
def get(path, params
|
13
|
-
|
16
|
+
def get(path, params={})
|
17
|
+
request(:get, path, params)
|
14
18
|
end
|
15
19
|
|
16
|
-
def post(path, params
|
17
|
-
|
20
|
+
def post(path, payload={}, params={})
|
21
|
+
request(:post, path, params, payload)
|
18
22
|
end
|
19
23
|
|
20
24
|
def file
|
21
|
-
|
25
|
+
@file ||= FileHandler.new(self)
|
22
26
|
end
|
23
27
|
|
24
28
|
def http_client
|
25
|
-
@
|
29
|
+
@http_client ||= RestClient::Resource.new(BASE_URL)
|
26
30
|
end
|
27
31
|
|
28
|
-
def
|
29
|
-
@
|
30
|
-
|
31
|
-
raise ConfigurationError, :password unless @password
|
32
|
-
digest = JSON.parse(RestClient.get("#{BASE_URL}/getdigest"))['digest']
|
33
|
-
passworddigest = digest_data(@password + digest_data( @username.downcase ) + digest)
|
34
|
-
JSON.parse(
|
35
|
-
RestClient.get("#{BASE_URL}/userinfo?getauth=1&logout=1",
|
36
|
-
{params: {username: @username, digest: digest, passworddigest: passworddigest}})
|
37
|
-
)['auth']
|
38
|
-
end
|
32
|
+
def authenticate(options = {})
|
33
|
+
@auth_token = authorize(options)['auth']
|
34
|
+
self
|
39
35
|
end
|
40
36
|
|
41
|
-
|
37
|
+
private
|
42
38
|
|
43
|
-
def
|
44
|
-
|
39
|
+
def request(verb, path, params, payload = {})
|
40
|
+
Pcloud::Request.call(self, verb, path, params, payload)
|
41
|
+
end
|
42
|
+
|
43
|
+
def authorize(options)
|
44
|
+
raise ConfigurationError, :username unless @username
|
45
|
+
raise ConfigurationError, :password unless @password
|
46
|
+
digest = JSON.parse(RestClient.get("#{BASE_URL}/getdigest"))['digest']
|
47
|
+
passworddigest = digest_data(@password + digest_data( @username.downcase ) + digest)
|
48
|
+
[:username, :digest, :passworddigest, :password].each { |k| options.delete(k) }
|
49
|
+
params = {params: {
|
50
|
+
username: @username,
|
51
|
+
digest: digest,
|
52
|
+
passworddigest: passworddigest,
|
53
|
+
device: "pcloud-ruby",
|
54
|
+
getauth: 1
|
55
|
+
}.merge!(options)}
|
56
|
+
JSON.parse(RestClient.get("#{BASE_URL}/userinfo", params)) #['auth']
|
45
57
|
end
|
46
58
|
|
47
59
|
def digest_data text
|
48
60
|
Digest::SHA1.hexdigest(text)
|
49
61
|
end
|
62
|
+
|
50
63
|
end
|
51
64
|
end
|
@@ -1,35 +1,51 @@
|
|
1
|
-
require '
|
1
|
+
require 'open-uri'
|
2
|
+
require 'zip'
|
2
3
|
|
3
4
|
module Pcloud
|
4
5
|
class FileHandler
|
6
|
+
|
5
7
|
def initialize(client)
|
6
8
|
@client = client
|
7
9
|
end
|
8
10
|
|
9
11
|
def upload(params, payload)
|
10
|
-
|
12
|
+
request(:post, 'uploadfile', params, payload)
|
11
13
|
end
|
12
14
|
|
13
15
|
def download(params)
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
# destination = params[:destination] ? params[:destination] : '.'
|
17
|
+
# data = request(:get, "getfilelink", {fileid: params[:fileid], forcedownload: 1})
|
18
|
+
# url = "https://#{data[:hosts][0]+data[:path]}"
|
19
|
+
# IO.copy_stream(URI.open(url), "#{destination}/#{url.split("/").last}")
|
20
|
+
# File.write("#{destination}/#{url.split("/").last}", URI.open(url).read)
|
21
|
+
|
22
|
+
destination = params[:destination] || '.'
|
23
|
+
filename = params[:filename] || nil
|
24
|
+
if !filename
|
25
|
+
stat = request(:get, "stat", {fileid: params[:fileid]})
|
26
|
+
filename = stat[:metadata][:name]
|
19
27
|
end
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
28
|
+
File.write("#{destination}/#{filename}", request(:get, "gettextfile", {fileid: params[:fileid], raw: true}))
|
29
|
+
end
|
30
|
+
|
31
|
+
def download_folder(params)
|
32
|
+
data = request(:get, "listfolder", {folderid: params[:folderid]})
|
33
|
+
destination = params[:destination] || '.'
|
34
|
+
folder_name = params[:filename] || data[:metadata][:name] << ".zip"
|
35
|
+
stringio = Zip::OutputStream::write_buffer do |zio|
|
36
|
+
data[:metadata][:contents].each do |content|
|
37
|
+
zio.put_next_entry(content[:name])
|
38
|
+
zio.write(request(:get, "gettextfile", {fileid: content[:fileid], raw: true}))
|
39
|
+
end
|
24
40
|
end
|
25
|
-
|
41
|
+
stringio.rewind #reposition buffer pointer to the beginning
|
42
|
+
File.new("#{destination}/#{folder_name}","wb").write(stringio.sysread) #write buffer to zipfile
|
26
43
|
end
|
27
44
|
|
28
|
-
|
45
|
+
private
|
29
46
|
|
30
|
-
def
|
31
|
-
Request.
|
47
|
+
def request(verb, path, params, payload = {})
|
48
|
+
Pcloud::Request.call(@client, verb, path, params, payload)
|
32
49
|
end
|
33
|
-
|
34
50
|
end
|
35
51
|
end
|
data/lib/pcloud/request.rb
CHANGED
@@ -1,46 +1,43 @@
|
|
1
1
|
module Pcloud
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
handle_response(e.http_code, e.message)
|
2
|
+
module Request
|
3
|
+
class << self
|
4
|
+
def call(client, verb, path, params, payload={})
|
5
|
+
params = {params: {}.merge!(params, {auth: client.auth_token})}
|
6
|
+
http = client.http_client
|
7
|
+
res = case verb
|
8
|
+
when :get
|
9
|
+
begin
|
10
|
+
http[path].get(params)
|
11
|
+
rescue => e
|
12
|
+
handle_response(e.http_code, e.message)
|
13
|
+
end
|
14
|
+
when :post
|
15
|
+
begin
|
16
|
+
http[path].post(payload, params)
|
17
|
+
rescue => e
|
18
|
+
handle_response(e.http_code, e.message)
|
19
|
+
end
|
20
|
+
else
|
21
|
+
raise "Unsupported verb (get and post available): #{verb}"
|
23
22
|
end
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
JSON.parse(res.body, { symbolize_names: true })
|
28
|
-
end
|
23
|
+
return res.body if params[:params][:raw]
|
24
|
+
JSON.parse(res.body, { symbolize_names: true })
|
25
|
+
end
|
29
26
|
|
30
27
|
private
|
31
28
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
29
|
+
def handle_response(status_code, body)
|
30
|
+
case status_code
|
31
|
+
when 400
|
32
|
+
raise HTTPError.new(:HTTPError, body)
|
33
|
+
when 401
|
34
|
+
raise AuthenticationError, body
|
35
|
+
when 404
|
36
|
+
raise HTTPError.new(:HTTPError, body)
|
37
|
+
else
|
38
|
+
raise Error, "Unknown error (status code #{status_code}): #{body}"
|
39
|
+
end
|
42
40
|
end
|
43
41
|
end
|
44
|
-
|
45
42
|
end
|
46
43
|
end
|
data/lib/pcloud/version.rb
CHANGED
data/lib/pcloud.rb
CHANGED
@@ -1,18 +1,21 @@
|
|
1
1
|
autoload 'Logger', 'logger'
|
2
2
|
require 'forwardable'
|
3
|
-
|
3
|
+
require_relative 'pcloud/client'
|
4
4
|
|
5
5
|
module Pcloud
|
6
6
|
BASE_URL = 'https://api.pcloud.com'.freeze
|
7
7
|
|
8
8
|
class << self
|
9
9
|
extend Forwardable
|
10
|
-
def_delegators :
|
11
|
-
def_delegators :
|
12
|
-
def_delegators :default_client, :file
|
10
|
+
def_delegators :client, :auth_token=, :username=, :password=
|
11
|
+
def_delegators :client, :get, :post, :file, :authenticate
|
13
12
|
|
14
13
|
attr_writer :logger
|
15
14
|
|
15
|
+
def client
|
16
|
+
@client ||= Pcloud::Client.new
|
17
|
+
end
|
18
|
+
|
16
19
|
def logger
|
17
20
|
@logger ||= begin
|
18
21
|
log = Logger.new($stdout)
|
@@ -21,13 +24,8 @@ module Pcloud
|
|
21
24
|
end
|
22
25
|
end
|
23
26
|
|
24
|
-
def default_client
|
25
|
-
@default_client ||= Pcloud::Client.new
|
26
|
-
end
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
require 'pcloud/resource'
|
33
|
-
require 'pcloud/exceptions'
|
30
|
+
require_relative './pcloud/version'
|
31
|
+
require_relative './pcloud/exceptions'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pcloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rovshen Gurdov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.2
|
47
|
+
version: 1.3.2
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.2
|
54
|
+
version: 1.3.2
|
55
55
|
description: Pcloud is cloud storage upload/download/share from pcloud.com. Please,
|
56
56
|
check available methods in Github Doc...
|
57
57
|
email:
|
@@ -70,7 +70,6 @@ files:
|
|
70
70
|
- lib/pcloud/exceptions.rb
|
71
71
|
- lib/pcloud/files/file_handler.rb
|
72
72
|
- lib/pcloud/request.rb
|
73
|
-
- lib/pcloud/resource.rb
|
74
73
|
- lib/pcloud/version.rb
|
75
74
|
homepage: https://github.com/7urkm3n/pcloud
|
76
75
|
licenses:
|
data/lib/pcloud/resource.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
require "pcloud/files/file_handler"
|
2
|
-
|
3
|
-
module Pcloud
|
4
|
-
class Resource
|
5
|
-
|
6
|
-
def initialize(client, path = "")
|
7
|
-
@client, @path = client, path
|
8
|
-
end
|
9
|
-
|
10
|
-
def get(params)
|
11
|
-
create_request(:get, params).call
|
12
|
-
end
|
13
|
-
|
14
|
-
def post(params, payload = {})
|
15
|
-
create_request(:post, params, payload).call
|
16
|
-
end
|
17
|
-
|
18
|
-
def file
|
19
|
-
@file ||= FileHandler.new(@client)
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def create_request(verb, params, payload = {})
|
25
|
-
Request.new(@client, verb, @path, params, payload)
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
29
|
-
end
|