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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 250b699fe0084a0cc5be062a6f3e36770c0a1912fa791777a08f0b3ae89d9183
4
- data.tar.gz: b63f9e998022028585a84ea52be887cb506312dbdf57e6c4faaafc95344e8c97
3
+ metadata.gz: 9556deb4b5e30cbe04ad5c58748675d148861575065ba9421c03e9fe65a5a180
4
+ data.tar.gz: 45bda05308651ffc0301f1b5c25bfdc9eb1f913743ab7a70bd5201cbe04de094
5
5
  SHA512:
6
- metadata.gz: 650490972ad8a2bc123aadd84a057fe941e8e7487ae140ab07aa0f661c95fd28aac3fe4b6902c03ce9ae260167446b31deeb886e361491fc5587f968aa42bb0e
7
- data.tar.gz: 4ab117f3c1f34d71ed1c7ed9aaa123320291ace5f6480c7e66de96d56e011df51abdbb45059041badfe092dcc63d1620d80b9acb8f847b0131fa65c06b807a19
6
+ metadata.gz: f67dc537a7735951d63c1f7b8cb9198e863c33d88971afb4a49cbb4ee9ff87ab338ed581bf11225726f0c2606258924225a2e184d90db7850075ba892c6c2805
7
+ data.tar.gz: 1ceffcc60b0b7bfab4c1b893232740c3848db7d7d1b3d60d4613a43e48f73c022984f59238b97cd6ed6e853c8ba65092da0cea075b17398fa6f5b0f78b8fc7b3
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tsks (0.0.3)
4
+ tsks (0.0.4)
5
5
  httparty
6
6
  sqlite3
7
7
  thor
@@ -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
@@ -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
@@ -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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Tsks
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
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.3
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-10-24 00:00:00.000000000 Z
11
+ date: 2020-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec