tsks 0.0.12 → 0.0.13

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: b89efbe36c688675848e879587194b69db1f2fb21a60a2722186d71baced4056
4
- data.tar.gz: a17fbbb16b65f0e1aa3d020596e71bdbab0c431e54b09365849d74d51121a981
3
+ metadata.gz: 115b558183b18b7ec4798910dfd43d4db49ab4448c94e21aaf9b7097e8dab7dc
4
+ data.tar.gz: 9f6afae532b9c8b210e3fcb0ea4173ca3b7dc27996eddfd75ebd0b390b022c37
5
5
  SHA512:
6
- metadata.gz: affe2109c255dab16db5c93f955abcf4d3afd3aa1e46e8e392dee22681a5c3564773ca83195b10f9129e15721b9c0fe11495071bbcacce2419c4c9fe2ba1f2ff
7
- data.tar.gz: 6a2c430ee08994a1d4ff8637b545ab2c27f60b645764b01e8b43793d474efec08afe25ab1d8bf9cacd9157547f83a11954ac8e0d9af91f85ad7302e0bb8cc368
6
+ metadata.gz: 94f4083f6f032a6c69fad18afaf27568eab7e453bdc25c4095e57a9c420ff2dc74801a920ae1165e3019d0438b9d34a2325af392333d34846b1839180e92203e
7
+ data.tar.gz: b5346d0dc286f2cc298388a2ddc8e41a4ec3a1764f77a79241dacff6a9d1ce53545c342df4d850d50ced47f588f93e2513dc61fc47e29accd8aacc21002bc27f
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tsks (0.0.12)
4
+ tsks (0.0.13)
5
5
  httparty
6
6
  sqlite3
7
7
  thor
data/lib/tsks/cli.rb CHANGED
@@ -161,25 +161,33 @@ module Tsks
161
161
  Tsks::Storage.delete_removed_uuids
162
162
  local_tsks = Tsks::Storage.select_all local_id=false
163
163
 
164
- remote_tsks = []
165
164
  begin
166
165
  get_res = Tsks::Request.get "/tsks", token
167
- if get_res[:tsks]
168
- for tsk in get_res[:tsks]
169
- tsk[:created_at] = Time.parse(tsk[:created_at]).strftime "%F %T"
170
- tsk[:updated_at] = Time.parse(tsk[:updated_at]).strftime "%F %T"
171
- remote_tsks.append tsk
172
- end
166
+ remote_tsks = get_res[:tsks]
173
167
 
168
+ if get_res[:tsks]
174
169
  if get_res[:ok] == true
175
170
  local_tsks_to_post = local_tsks - remote_tsks
171
+
176
172
  if local_tsks_to_post.count > 0
177
173
  for tsk in local_tsks_to_post
178
- Tsks::Request.post "/tsks", token, {tsk: tsk}
174
+ post_res = Tsks::Request.post "/tsks", token, {tsk: tsk}
175
+ posted_tsk = post_res[:tsk]
176
+
177
+ if posted_tsk
178
+ # TODO: write tests for Storage.select_local_id
179
+ tsk_local_id = Tsks::Storage.select_local_id({tsk: posted_tsk[:tsk],
180
+ created_at: posted_tsk[:created_at],
181
+ updated_at: posted_tsk[:updated_at]})
182
+
183
+ Tsks::Storage.update tsk_local_id, {id: posted_tsk[:id]}
184
+ end
179
185
  end
180
186
  end
181
187
 
182
- remote_tsks_to_storage = remote_tsks - local_tsks
188
+ updated_local_tsks = Tsks::Storage.select_all local_id=false
189
+ remote_tsks_to_storage = remote_tsks - updated_local_tsks
190
+
183
191
  if remote_tsks_to_storage.count > 0
184
192
  Tsks::Storage.insert_many remote_tsks_to_storage
185
193
  end
data/lib/tsks/storage.rb CHANGED
@@ -7,7 +7,7 @@ module Tsks
7
7
  storage = get_storage_instance
8
8
  storage.execute <<-SQL
9
9
  CREATE TABLE tsks (
10
- id VARCHAR PRIMARY KEY UNIQUE NOT NULL,
10
+ id VARCHAR PRIMARY KEY UNIQUE,
11
11
  user_id INTEGER DEFAULT 1,
12
12
  tsk VARCHAR NOT NULL,
13
13
  status VARCHAR DEFAULT todo,
@@ -19,27 +19,26 @@ module Tsks
19
19
 
20
20
  storage.execute <<-SQL
21
21
  CREATE TABLE removed_tsks (
22
- tsk_uuid VARCHAR UNIQUE NOT NULL
22
+ tsk_id VARCHAR UNIQUE NOT NULL
23
23
  )
24
24
  SQL
25
25
  end
26
26
 
27
27
  def self.insert tsk, ctx=nil
28
28
  storage = get_storage_instance
29
- now = Time.now.strftime "%F %T"
30
- uuid = UUID.new.generate
29
+ now = Time.now.strftime("%Y-%m-%dT%H:%M:%S.%LZ")
31
30
 
32
31
  if ctx
33
32
  storage.execute("
34
- INSERT INTO tsks (id, tsk, status, context, created_at, updated_at)
35
- VALUES (?, ?, ?, ?, ?, ?)",
36
- [uuid, tsk, 'todo', ctx, now, now]
33
+ INSERT INTO tsks (tsk, status, context, created_at, updated_at)
34
+ VALUES (?, ?, ?, ?, ?)",
35
+ [tsk, 'todo', ctx, now, now]
37
36
  )
38
37
  else
39
38
  storage.execute("
40
- INSERT INTO tsks (id, tsk, status, created_at, updated_at)
41
- VALUES (?, ?, ?, ?, ?)",
42
- [uuid, tsk, 'todo', now, now]
39
+ INSERT INTO tsks (tsk, status, created_at, updated_at)
40
+ VALUES (?, ?, ?, ?)",
41
+ [tsk, 'todo', now, now]
43
42
  )
44
43
  end
45
44
  end
@@ -101,6 +100,17 @@ module Tsks
101
100
  tsks = structure_tsks raw_tsks
102
101
  end
103
102
 
103
+ # TODO: write tests for Storage.select_local_id
104
+ def self.select_local_id params
105
+ storage = get_storage_instance
106
+
107
+ tsk = storage.execute(
108
+ "SELECT rowid, * FROM tsks WHERE #{params.keys.first}=? AND #{params.keys[1]}=? AND #{params.keys.last}=?",
109
+ params.values.first, params.values[1], params.values.last)
110
+
111
+ tsk_local_id = tsk[0][0]
112
+ end
113
+
104
114
  def self.select_all local_id=true
105
115
  storage = get_storage_instance
106
116
  raw_tsks = local_id ?
@@ -117,13 +127,11 @@ module Tsks
117
127
 
118
128
  def self.delete local_id
119
129
  storage = get_storage_instance
120
- removed_tsks = storage
121
- .execute("SELECT * FROM tsks WHERE rowid=?", local_id)
130
+ removed_tsks = storage.execute("SELECT * FROM tsks WHERE rowid=?", local_id)
122
131
  if removed_tsks.empty?
123
132
  return false
124
133
  end
125
- storage
126
- .execute("INSERT INTO removed_tsks (tsk_uuid) VALUES (?)", removed_tsks[0][0])
134
+ storage.execute("INSERT INTO removed_tsks (tsk_id) VALUES (?)", removed_tsks[0][0])
127
135
  storage.execute("DELETE FROM tsks WHERE rowid=?", local_id)
128
136
  end
129
137
 
@@ -131,11 +139,11 @@ module Tsks
131
139
  storage = get_storage_instance
132
140
  result = storage.execute("SELECT * FROM removed_tsks")
133
141
 
134
- tsk_uuids = []
142
+ tsk_ids = []
135
143
  for item in result
136
- tsk_uuids.append item[0]
144
+ tsk_ids.append item[0]
137
145
  end
138
- return tsk_uuids
146
+ return tsk_ids
139
147
  end
140
148
 
141
149
  def self.delete_removed_uuids
data/lib/tsks/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Tsks
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.13"
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.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luan Ramos Vicente
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-19 00:00:00.000000000 Z
11
+ date: 2023-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec