planning_client 0.0.1
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 +15 -0
- data/app/models/planning_client/checklist.rb +37 -0
- data/app/models/planning_client/checklist_item.rb +21 -0
- data/app/models/planning_client/to_do.rb +68 -0
- data/lib/planning_client/railties.rb +4 -0
- data/lib/planning_client/service_configuration.rb +19 -0
- data/lib/planning_client.rb +5 -0
- metadata +78 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NjkzNTdjMDcxMGYzZjBlZWM3ZTEzMmQ0ZjYxZWYwZDZiNjM5MDBjYw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZDI0NDA2ODU3MjJkODYzNzY2MDA2MWNkNzY3ZjkxMjE5ZGM4ZmYyOA==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MmM5ZDRlODE4OGNlNmIzZjA1NDc5MDMwNzBjZGM4N2JhNGI4M2I1M2Y0NDEw
|
10
|
+
ZDE1OTg2NjU2YWMwZDE0OTlmOTkxZTc1MDdkNTkyMGI5MjBlYTU0MmFlZWMx
|
11
|
+
YzllMGVlMjk1MDE1MDZiZTM1ODVjNTU5YTkyNWNjZDQwYmQxYTM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MjI5Y2IyMTc2N2ZmM2YzZmU5ZDVlOWI3YjA4ZTVhOWIwNzAzY2ZjYjNlNTc5
|
14
|
+
YzBlMmNlZTU5MDQxN2ZmODYzNWI2YmZjYzc1Nzg1MmQxMTBmMDk5NTUyNjI4
|
15
|
+
YzhjYjAxOTM0NTE3MWJiODgyOWNmNjUzNzFmN2EzMThhYWI5YzQ=
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'planning_client/service_configuration'
|
2
|
+
|
3
|
+
module PlanningClient
|
4
|
+
class Checklist < LogicalModel
|
5
|
+
include PlanningClient::ServiceConfiguration
|
6
|
+
|
7
|
+
set_resource_path '/v0/checklists'
|
8
|
+
|
9
|
+
attribute :id
|
10
|
+
attribute :name
|
11
|
+
attribute :description
|
12
|
+
|
13
|
+
has_many :items, class: 'PlanningClient::ChecklistItem'
|
14
|
+
|
15
|
+
##
|
16
|
+
# Copies checklists items as to_dos
|
17
|
+
#
|
18
|
+
# @param options [Hash]
|
19
|
+
# @option options [String] responsible_username
|
20
|
+
# @option options [String] requester_username
|
21
|
+
#
|
22
|
+
# @example @checklist.assign(responsible_username: 'dwayne', requester_username: 'lucia')
|
23
|
+
#
|
24
|
+
# @return [Boolean]
|
25
|
+
def assign_to(options={})
|
26
|
+
resp = Typhoeus::Request.get("#{self.class.resource_uri(self.id)}/assign",
|
27
|
+
params: self.class.merge_key(options))
|
28
|
+
if resp.code == 200
|
29
|
+
log_ok(resp)
|
30
|
+
true
|
31
|
+
else
|
32
|
+
log_failed(resp)
|
33
|
+
false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'planning_client/service_configuration'
|
2
|
+
|
3
|
+
module PlanningClient
|
4
|
+
class ChecklistItem < LogicalModel
|
5
|
+
include PlanningClient::ServiceConfiguration
|
6
|
+
|
7
|
+
set_resource_path '/v0/checklist_items'
|
8
|
+
|
9
|
+
attribute :id
|
10
|
+
|
11
|
+
belongs_to :checklist, class: 'PlanningClient::Checklist'
|
12
|
+
|
13
|
+
attribute :description
|
14
|
+
attribute :offset
|
15
|
+
attribute :offset_type
|
16
|
+
|
17
|
+
attribute :context_id
|
18
|
+
attribute :context_type
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'planning_client/service_configuration'
|
2
|
+
|
3
|
+
module PlanningClient
|
4
|
+
class ToDo < LogicalModel
|
5
|
+
include PlanningClient::ServiceConfiguration
|
6
|
+
|
7
|
+
set_resource_path '/v0/to_dos'
|
8
|
+
|
9
|
+
attribute :id
|
10
|
+
|
11
|
+
attribute :state
|
12
|
+
|
13
|
+
attribute :context_id
|
14
|
+
attribute :contact_type
|
15
|
+
|
16
|
+
attribute :requester_username
|
17
|
+
attribute :responsible_username
|
18
|
+
|
19
|
+
attribute :description
|
20
|
+
|
21
|
+
attribute :due_at
|
22
|
+
|
23
|
+
attribute :account_name
|
24
|
+
|
25
|
+
# mark ToDo as in progress
|
26
|
+
def start
|
27
|
+
if self.status_transition("start")
|
28
|
+
self.state = 'in_progress'
|
29
|
+
self
|
30
|
+
else
|
31
|
+
nil
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# mark ToDo as in stand by
|
36
|
+
def hold
|
37
|
+
if self.status_transition("hold")
|
38
|
+
self.state = 'stand_by'
|
39
|
+
self
|
40
|
+
else
|
41
|
+
nil
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# mark ToDo as completed
|
46
|
+
def complete
|
47
|
+
if self.status_transition("complete")
|
48
|
+
self.state = 'completed'
|
49
|
+
self
|
50
|
+
else
|
51
|
+
nil
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
protected
|
56
|
+
|
57
|
+
def status_transition(transition)
|
58
|
+
response = Typhoeus::Request.get( "#{self.class.resource_uri(id)}/#{transition}", params: self.class.merge_key({}) )
|
59
|
+
if response.code == 200
|
60
|
+
log_ok(response)
|
61
|
+
return self
|
62
|
+
else
|
63
|
+
log_failed(response)
|
64
|
+
return nil
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module PlanningClient
|
2
|
+
module ServiceConfiguration
|
3
|
+
def self.included(base)
|
4
|
+
base.send('use_hydra', PlanningClient::HYDRA)
|
5
|
+
|
6
|
+
host = case ENV['RACK_ENV']
|
7
|
+
when 'development'
|
8
|
+
PlanningClient::HOST
|
9
|
+
when 'production'
|
10
|
+
'padma-planning.heroku.com'
|
11
|
+
end
|
12
|
+
|
13
|
+
base.send('set_resource_host', host)
|
14
|
+
base.send('configure_index_response', {collection: 'collection', total: 'total'})
|
15
|
+
|
16
|
+
base.send('set_api_key','app_key',ENV['planning_api_key'])
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: planning_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dwayne Macgowan
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-05-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: railties
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: logical_model
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.5.12
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.5.12
|
41
|
+
description: Padma Planning client with LogicalModel
|
42
|
+
email:
|
43
|
+
- dwaynemac@gmail.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- app/models/planning_client/checklist_item.rb
|
49
|
+
- app/models/planning_client/checklist.rb
|
50
|
+
- app/models/planning_client/to_do.rb
|
51
|
+
- lib/planning_client/railties.rb
|
52
|
+
- lib/planning_client/service_configuration.rb
|
53
|
+
- lib/planning_client.rb
|
54
|
+
homepage: ''
|
55
|
+
licenses: []
|
56
|
+
metadata: {}
|
57
|
+
post_install_message:
|
58
|
+
rdoc_options: []
|
59
|
+
require_paths:
|
60
|
+
- lib
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
requirements: []
|
72
|
+
rubyforge_project:
|
73
|
+
rubygems_version: 2.1.11
|
74
|
+
signing_key:
|
75
|
+
specification_version: 4
|
76
|
+
summary: Client library for padma-planning-ws
|
77
|
+
test_files: []
|
78
|
+
has_rdoc:
|