tsks 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/tsks/actions.rb +10 -0
- data/lib/tsks/cli.rb +23 -4
- data/lib/tsks/request.rb +6 -0
- data/lib/tsks/storage.rb +34 -0
- data/lib/tsks/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9556deb4b5e30cbe04ad5c58748675d148861575065ba9421c03e9fe65a5a180
|
4
|
+
data.tar.gz: 45bda05308651ffc0301f1b5c25bfdc9eb1f913743ab7a70bd5201cbe04de094
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f67dc537a7735951d63c1f7b8cb9198e863c33d88971afb4a49cbb4ee9ff87ab338ed581bf11225726f0c2606258924225a2e184d90db7850075ba892c6c2805
|
7
|
+
data.tar.gz: 1ceffcc60b0b7bfab4c1b893232740c3848db7d7d1b3d60d4613a43e48f73c022984f59238b97cd6ed6e853c8ba65092da0cea075b17398fa6f5b0f78b8fc7b3
|
data/Gemfile.lock
CHANGED
data/lib/tsks/actions.rb
CHANGED
@@ -9,5 +9,15 @@ module Tsks
|
|
9
9
|
Tsks::Storage.update tsk[:local_id], {user_id: uuid}
|
10
10
|
end
|
11
11
|
end
|
12
|
+
|
13
|
+
def self.update_server_for_removed_tsks token
|
14
|
+
tsks_uuids = Tsks::Storage.select_removed_uuids
|
15
|
+
|
16
|
+
if !tsks_uuids.empty?
|
17
|
+
for id in tsks_uuids
|
18
|
+
Tsks::Request.delete "/tsks/#{id}", token
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
12
22
|
end
|
13
23
|
end
|
data/lib/tsks/cli.rb
CHANGED
@@ -12,6 +12,11 @@ module Tsks
|
|
12
12
|
@setup_folder
|
13
13
|
end
|
14
14
|
|
15
|
+
desc "version", ""
|
16
|
+
def version
|
17
|
+
puts "tsks #{Tsks::VERSION}"
|
18
|
+
end
|
19
|
+
|
15
20
|
desc "init", "Setup tsks folder and storage"
|
16
21
|
def init
|
17
22
|
if File.directory? CLI.setup_folder
|
@@ -94,7 +99,7 @@ module Tsks
|
|
94
99
|
elsif res && res[:status_code] == 409
|
95
100
|
puts "This e-mail is already registered."
|
96
101
|
end
|
97
|
-
rescue Errno::ECONNREFUSED
|
102
|
+
rescue Errno::ECONNREFUSED, SocketError
|
98
103
|
puts "Failed to connect to the API."
|
99
104
|
rescue JSON::ParserError
|
100
105
|
puts "Error on reading data from the API."
|
@@ -121,7 +126,7 @@ module Tsks
|
|
121
126
|
elsif res && res[:status_code] == 403
|
122
127
|
puts "Invalid e-mail or password."
|
123
128
|
end
|
124
|
-
rescue Errno::ECONNREFUSED
|
129
|
+
rescue Errno::ECONNREFUSED, SocketError
|
125
130
|
puts "Failed to connect to the API."
|
126
131
|
rescue JSON::ParserError
|
127
132
|
puts "Error on reading data from the API."
|
@@ -139,10 +144,12 @@ module Tsks
|
|
139
144
|
end
|
140
145
|
|
141
146
|
user_id = File.read File.join CLI.setup_folder, "user_id"
|
147
|
+
token = File.read File.join CLI.setup_folder, "token"
|
142
148
|
Tsks::Actions.update_tsks_with_uuid user_id
|
149
|
+
Tsks::Actions.update_server_for_removed_tsks token
|
150
|
+
Tsks::Storage.delete_removed_uuids
|
143
151
|
local_tsks = Tsks::Storage.select_all local_id=false
|
144
152
|
|
145
|
-
token = File.read File.join CLI.setup_folder, "token"
|
146
153
|
remote_tsks = []
|
147
154
|
begin
|
148
155
|
get_res = Tsks::Request.get "/tsks", token
|
@@ -167,11 +174,23 @@ module Tsks
|
|
167
174
|
puts "Your tsks were succesfully synchronized."
|
168
175
|
end
|
169
176
|
end
|
170
|
-
rescue Errno::ECONNREFUSED
|
177
|
+
rescue Errno::ECONNREFUSED, SocketError
|
171
178
|
puts "Failed to connect to the API."
|
172
179
|
rescue JSON::ParserError
|
173
180
|
puts "Error on reading data from the API."
|
174
181
|
end
|
175
182
|
end
|
183
|
+
|
184
|
+
desc "remove ID", "..."
|
185
|
+
def remove id
|
186
|
+
if !File.directory? CLI.setup_folder
|
187
|
+
return puts "tsks was not initialized yet."
|
188
|
+
end
|
189
|
+
|
190
|
+
op_status = Tsks::Storage.delete id
|
191
|
+
if !op_status
|
192
|
+
puts "The specified tsk do not exist."
|
193
|
+
end
|
194
|
+
end
|
176
195
|
end
|
177
196
|
end
|
data/lib/tsks/request.rb
CHANGED
@@ -27,6 +27,12 @@ module Tsks
|
|
27
27
|
parsed_res = parse_response res.body
|
28
28
|
end
|
29
29
|
|
30
|
+
def self.delete endpoint, token
|
31
|
+
uri = URI "#{Request.base_uri}#{endpoint}"
|
32
|
+
res = HTTParty.delete uri, headers: {authorization: "Bearer #{token}"}
|
33
|
+
parsed_res = parse_response res.body
|
34
|
+
end
|
35
|
+
|
30
36
|
private
|
31
37
|
|
32
38
|
def self.parse_response body
|
data/lib/tsks/storage.rb
CHANGED
@@ -16,6 +16,12 @@ module Tsks
|
|
16
16
|
updated_at VARCHAR NOT NULL
|
17
17
|
)
|
18
18
|
SQL
|
19
|
+
|
20
|
+
storage.execute <<-SQL
|
21
|
+
CREATE TABLE removed_tsks (
|
22
|
+
tsk_uuid VARCHAR UNIQUE NOT NULL
|
23
|
+
)
|
24
|
+
SQL
|
19
25
|
end
|
20
26
|
|
21
27
|
def self.insert tsk, ctx=nil
|
@@ -103,6 +109,34 @@ module Tsks
|
|
103
109
|
tsks = structure_tsks(raw_tsks, local_id=local_id)
|
104
110
|
end
|
105
111
|
|
112
|
+
def self.delete local_id
|
113
|
+
storage = get_storage_instance
|
114
|
+
removed_tsks = storage
|
115
|
+
.execute("SELECT * FROM tsks WHERE rowid=?", local_id)
|
116
|
+
if removed_tsks.empty?
|
117
|
+
return false
|
118
|
+
end
|
119
|
+
storage
|
120
|
+
.execute("INSERT INTO removed_tsks (tsk_uuid) VALUES (?)", removed_tsks[0][0])
|
121
|
+
storage.execute("DELETE FROM tsks WHERE rowid=?", local_id)
|
122
|
+
end
|
123
|
+
|
124
|
+
def self.select_removed_uuids
|
125
|
+
storage = get_storage_instance
|
126
|
+
result = storage.execute("SELECT * FROM removed_tsks")
|
127
|
+
|
128
|
+
tsk_uuids = []
|
129
|
+
for item in result
|
130
|
+
tsk_uuids.append item[0]
|
131
|
+
end
|
132
|
+
return tsk_uuids
|
133
|
+
end
|
134
|
+
|
135
|
+
def self.delete_removed_uuids
|
136
|
+
storage = get_storage_instance
|
137
|
+
storage.execute("DELETE FROM removed_tsks")
|
138
|
+
end
|
139
|
+
|
106
140
|
private
|
107
141
|
|
108
142
|
def self.get_storage_instance
|
data/lib/tsks/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tsks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luan F. R. Vicente
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|