tsks 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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