harvest-ruby-v2 0.3.4 → 0.4.0
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 +4 -4
- data/lib/harvest.rb +21 -10
- data/lib/harvest/changers.rb +27 -0
- data/lib/harvest/httpclient.rb +8 -0
- data/lib/harvest/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7fd54649aabcba944c8e02a7ea5ae6a972b9b87f2bd7ad455ba2da0ab164ae87
|
4
|
+
data.tar.gz: 55357327dba37d0e8e50d5b7474d5a5b59f97e083849db987cf5fb38d5596418
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4cb412255cdeed5d49b080c9168bc6f01e8f6ca05c953069428fed942f49a092127c5fc428ca9eac001f34f5b27a9b76d185de414b9daba6c622a4c2977c9d96
|
7
|
+
data.tar.gz: 5a08ac7e1e6025d43dc1b9e71f56bcf0964199c0c49a10cfb2247346e8a9c78301058b1181e7055b67212c63391d6614334b9431bd4de0517f3fe30c4812ba65
|
data/lib/harvest.rb
CHANGED
@@ -11,6 +11,7 @@ require 'harvest/exceptions'
|
|
11
11
|
require 'harvest/finders'
|
12
12
|
require 'harvest/discovers'
|
13
13
|
require 'harvest/creates'
|
14
|
+
require 'harvest/changers'
|
14
15
|
|
15
16
|
# Conform to naming pattern of Finder, Discover, Creators.
|
16
17
|
# @param key [Symbol] symbol of state
|
@@ -90,6 +91,16 @@ module Harvest
|
|
90
91
|
self
|
91
92
|
end
|
92
93
|
|
94
|
+
# Find single instance of resource
|
95
|
+
def change(**kwargs)
|
96
|
+
@state[@state[:active]].map do |_obj|
|
97
|
+
Harvest::Changers.const_get(to_class_name(@state[:active])).new.change(
|
98
|
+
@factory, @client, active_user, @state, kwargs
|
99
|
+
)
|
100
|
+
end
|
101
|
+
self
|
102
|
+
end
|
103
|
+
|
93
104
|
# Discover resources
|
94
105
|
def discover(**params)
|
95
106
|
@state[@state[:active]] = Harvest::Discovers
|
@@ -101,6 +112,16 @@ module Harvest
|
|
101
112
|
self
|
102
113
|
end
|
103
114
|
|
115
|
+
# Create an instance of object based on state
|
116
|
+
def create(**kwargs)
|
117
|
+
@state[@state[:active]] = Harvest::Create.const_get(
|
118
|
+
to_class_name(@state[:active])
|
119
|
+
).new.create(
|
120
|
+
@factory, @client, active_user, @state, kwargs
|
121
|
+
)
|
122
|
+
self
|
123
|
+
end
|
124
|
+
|
104
125
|
# Select a subset of all items depending on state
|
105
126
|
def select(&block)
|
106
127
|
@state[@state[:active]] = @state[@state[:active]].select(&block)
|
@@ -116,15 +137,5 @@ module Harvest
|
|
116
137
|
def data
|
117
138
|
@state[@state[:active]]
|
118
139
|
end
|
119
|
-
|
120
|
-
# Create an instance of object based on state
|
121
|
-
def create(**kwargs)
|
122
|
-
@state[@state[:active]] = Harvest::Create.const_get(
|
123
|
-
to_class_name(@state[:active])
|
124
|
-
).new.create(
|
125
|
-
@factory, @client, active_user, @state, kwargs
|
126
|
-
)
|
127
|
-
self
|
128
|
-
end
|
129
140
|
end
|
130
141
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Harvest
|
4
|
+
module Changers
|
5
|
+
class TimeEntry
|
6
|
+
def change(factory, client, _active_user, state, kwargs)
|
7
|
+
# binding.pry
|
8
|
+
state[state[:active]].map do |te|
|
9
|
+
send(kwargs[:action].to_sym, factory, client, te)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def restart(factory, client, te)
|
16
|
+
# PATCH /v2/time_entries/{TIME_ENTRY_ID}/restart
|
17
|
+
# binding.pry
|
18
|
+
[factory.time_entry(client.api_call(client.api_caller("time_entries/#{te.id}/restart", http_method: 'patch')))]
|
19
|
+
end
|
20
|
+
|
21
|
+
def stop(factory, client, te)
|
22
|
+
# PATCH /v2/time_entries/{TIME_ENTRY_ID}/stop
|
23
|
+
[factory.time_entry(client.api_call(client.api_caller("time_entries/#{te.id}/stop", http_method: 'patch')))]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/harvest/httpclient.rb
CHANGED
@@ -125,9 +125,17 @@ module Harvest
|
|
125
125
|
client[struct.path].get(struct.headers)
|
126
126
|
end
|
127
127
|
|
128
|
+
def delete(struct)
|
129
|
+
client[struct.path].delete(struct.headers)
|
130
|
+
end
|
131
|
+
|
128
132
|
def post(struct)
|
129
133
|
client[struct.path].post(struct.payload, struct.headers)
|
130
134
|
end
|
135
|
+
|
136
|
+
def patch(struct)
|
137
|
+
client[struct.path].patch(struct.payload, struct.headers)
|
138
|
+
end
|
131
139
|
end
|
132
140
|
|
133
141
|
Struct.new(
|
data/lib/harvest/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: harvest-ruby-v2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Craig Davis
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- bin/setup
|
62
62
|
- harvest-ruby-v2.gemspec
|
63
63
|
- lib/harvest.rb
|
64
|
+
- lib/harvest/changers.rb
|
64
65
|
- lib/harvest/client.rb
|
65
66
|
- lib/harvest/config.rb
|
66
67
|
- lib/harvest/creates.rb
|