wcc-jtj-client 0.1.0 → 0.1.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 +4 -4
- data/.rubocop.yml +7 -0
- data/lib/wcc/jtj/client/response.rb +4 -0
- data/lib/wcc/jtj/client/responses/curriculum_show_response.rb +7 -0
- data/lib/wcc/jtj/client/responses/curriculums_list_response.rb +7 -0
- data/lib/wcc/jtj/client/responses/entries_list_response.rb +7 -0
- data/lib/wcc/jtj/client/responses/entry_show_response.rb +7 -0
- data/lib/wcc/jtj/client/responses/memory_verse_show_response.rb +7 -0
- data/lib/wcc/jtj/client/responses/memory_verses_list_response.rb +7 -0
- data/lib/wcc/jtj/client/schemas/base.rb +3 -1
- data/lib/wcc/jtj/client/schemas/schema_validation_error.rb +6 -0
- data/lib/wcc/jtj/client/version.rb +1 -1
- data/lib/wcc/jtj/client.rb +51 -20
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1bad5a870ee2626cf3ca961591d8d9ccc9d33ad6cf8ec85ac5b93347b376013a
|
4
|
+
data.tar.gz: 1ba7d0c5ad2fc58d904bfcc3b6fb388fd2796d5cf0dfaa2db99aa19b43fd999a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '05091af67a5b43c4704ba50e28675b7509ab46d5f10cb1bd176d91fc6a979cd69f51a67595448e938f6c06a9ef641e047cae454cf943c72f549c232e355842e9'
|
7
|
+
data.tar.gz: ade4a32a1fedcced55f05cb99ba23b8dd6fcc930324ea987d75f6e485587e6785566700b30760c23becb68e48f90f855a068d39115b970ba7535243da201eeda
|
data/.rubocop.yml
CHANGED
@@ -21,8 +21,15 @@ Style/ClassAndModuleChildren:
|
|
21
21
|
Style/Documentation:
|
22
22
|
Enabled: false
|
23
23
|
|
24
|
+
Style/GuardClause:
|
25
|
+
Enabled: false
|
26
|
+
|
24
27
|
Style/IfUnlessModifier:
|
25
28
|
Enabled: false
|
26
29
|
|
27
30
|
Style/MultilineIfModifier:
|
31
|
+
Enabled: false
|
32
|
+
|
33
|
+
# This one won't let me EnforcedStyle: slashes, do we need to upgrade rubocop?
|
34
|
+
Style/RegexpLiteral:
|
28
35
|
Enabled: false
|
@@ -26,5 +26,12 @@ module WCC::JTJ::Client::Responses
|
|
26
26
|
) do |camelcase|
|
27
27
|
OpenStruct.new(raw[camelcase]) if raw[camelcase]
|
28
28
|
end
|
29
|
+
|
30
|
+
def validate!
|
31
|
+
unless curriculum&.id
|
32
|
+
raise WCC::JTJ::Client::Schemas::SchemaValidationError,
|
33
|
+
"Not a CurriculumShowResponse! #{raw.url}"
|
34
|
+
end
|
35
|
+
end
|
29
36
|
end
|
30
37
|
end
|
@@ -23,5 +23,12 @@ module WCC::JTJ::Client::Responses
|
|
23
23
|
) do |camelcase|
|
24
24
|
OpenStruct.new(raw[camelcase]) if raw[camelcase]
|
25
25
|
end
|
26
|
+
|
27
|
+
def validate!
|
28
|
+
unless total && raw['curriculums'].is_a?(Array)
|
29
|
+
raise WCC::JTJ::Client::Schemas::SchemaValidationError,
|
30
|
+
"Not a CurriculumsListResponse! #{raw.url}"
|
31
|
+
end
|
32
|
+
end
|
26
33
|
end
|
27
34
|
end
|
@@ -23,5 +23,12 @@ module WCC::JTJ::Client::Responses
|
|
23
23
|
) do |camelcase|
|
24
24
|
OpenStruct.new(raw[camelcase]) if raw[camelcase]
|
25
25
|
end
|
26
|
+
|
27
|
+
def validate!
|
28
|
+
unless total && raw['entries'].is_a?(Array)
|
29
|
+
raise WCC::JTJ::Client::Schemas::SchemaValidationError,
|
30
|
+
"Not an EntriesListResponse! #{raw.url}"
|
31
|
+
end
|
32
|
+
end
|
26
33
|
end
|
27
34
|
end
|
@@ -16,5 +16,12 @@ module WCC::JTJ::Client::Responses
|
|
16
16
|
) do |camelcase|
|
17
17
|
OpenStruct.new(raw[camelcase]) if raw[camelcase]
|
18
18
|
end
|
19
|
+
|
20
|
+
def validate!
|
21
|
+
unless entry&.id
|
22
|
+
raise WCC::JTJ::Client::Schemas::SchemaValidationError,
|
23
|
+
"Not an EntryShowResponse! #{raw.url}"
|
24
|
+
end
|
25
|
+
end
|
19
26
|
end
|
20
27
|
end
|
@@ -16,5 +16,12 @@ module WCC::JTJ::Client::Responses
|
|
16
16
|
) do |camelcase|
|
17
17
|
OpenStruct.new(raw[camelcase]) if raw[camelcase]
|
18
18
|
end
|
19
|
+
|
20
|
+
def validate!
|
21
|
+
unless memory_verse&.id
|
22
|
+
raise WCC::JTJ::Client::Schemas::SchemaValidationError,
|
23
|
+
"Not a MemoryVerseShowResponse! #{raw.url}"
|
24
|
+
end
|
25
|
+
end
|
19
26
|
end
|
20
27
|
end
|
@@ -23,5 +23,12 @@ module WCC::JTJ::Client::Responses
|
|
23
23
|
) do |camelcase|
|
24
24
|
OpenStruct.new(raw[camelcase]) if raw[camelcase]
|
25
25
|
end
|
26
|
+
|
27
|
+
def validate!
|
28
|
+
unless total && raw['memory_verses'].is_a?(Array)
|
29
|
+
raise WCC::JTJ::Client::Schemas::SchemaValidationError,
|
30
|
+
"Not a MemoryVersesListResponse! #{raw.url}"
|
31
|
+
end
|
32
|
+
end
|
26
33
|
end
|
27
34
|
end
|
@@ -11,9 +11,11 @@ module WCC::JTJ::Client::Schemas
|
|
11
11
|
attr_reader :raw
|
12
12
|
def_delegators :raw, :[], :dig, :to_h, :to_json
|
13
13
|
|
14
|
-
def initialize(raw, client: WCC::JTJ::Client.
|
14
|
+
def initialize(raw, client: WCC::JTJ::Client.client)
|
15
15
|
@raw = raw
|
16
16
|
@client = client
|
17
17
|
end
|
18
|
+
|
19
|
+
def validate!; end
|
18
20
|
end
|
19
21
|
end
|
data/lib/wcc/jtj/client.rb
CHANGED
@@ -7,6 +7,7 @@ require_relative './client/utils'
|
|
7
7
|
require_relative './client/response'
|
8
8
|
|
9
9
|
require_relative './client/schemas/base'
|
10
|
+
require_relative './client/schemas/schema_validation_error'
|
10
11
|
require_relative './client/schemas/curriculum_summary'
|
11
12
|
require_relative './client/schemas/entry_summary'
|
12
13
|
require_relative './client/schemas/entry'
|
@@ -25,7 +26,7 @@ require_relative './client/responses/memory_verses_list_response'
|
|
25
26
|
require_relative './client/responses/memory_verse_show_response'
|
26
27
|
|
27
28
|
module WCC::JTJ
|
28
|
-
class Client
|
29
|
+
class Client # rubocop:disable Metrics/ClassLength
|
29
30
|
class << self
|
30
31
|
attr_writer :client
|
31
32
|
|
@@ -68,49 +69,79 @@ module WCC::JTJ
|
|
68
69
|
def get_current
|
69
70
|
resp = get(base_path).assert_ok!
|
70
71
|
|
71
|
-
Responses::RootResponse.new(resp, client: self)
|
72
|
+
Responses::RootResponse.new(resp, client: self).tap(&:validate!)
|
72
73
|
end
|
73
74
|
|
74
|
-
def list_curriculums
|
75
|
-
path =
|
75
|
+
def list_curriculums(link = nil)
|
76
|
+
path =
|
77
|
+
if link && /^https?:\/\// =~ link
|
78
|
+
link
|
79
|
+
else
|
80
|
+
File.join(base_path, 'curriculums')
|
81
|
+
end
|
76
82
|
resp = get(path).assert_ok!
|
77
83
|
|
78
|
-
Responses::CurriculumsListResponse.new(resp, client: self)
|
84
|
+
Responses::CurriculumsListResponse.new(resp, client: self).tap(&:validate!)
|
79
85
|
end
|
80
86
|
|
81
|
-
def get_curriculum(
|
82
|
-
path =
|
87
|
+
def get_curriculum(id_or_link)
|
88
|
+
path =
|
89
|
+
if /^https?:\/\// =~ id_or_link.to_s
|
90
|
+
id_or_link
|
91
|
+
else
|
92
|
+
File.join(base_path, 'curriculums', id_or_link.to_s)
|
93
|
+
end
|
83
94
|
resp = get(path).assert_ok!
|
84
95
|
|
85
|
-
Responses::CurriculumShowResponse.new(resp, client: self)
|
96
|
+
Responses::CurriculumShowResponse.new(resp, client: self).tap(&:validate!)
|
86
97
|
end
|
87
98
|
|
88
|
-
def list_entries(**query)
|
89
|
-
path =
|
99
|
+
def list_entries(link = nil, **query)
|
100
|
+
path =
|
101
|
+
if link && /^https?:\/\// =~ link
|
102
|
+
link
|
103
|
+
else
|
104
|
+
File.join(base_path, 'entries')
|
105
|
+
end
|
90
106
|
resp = get(path, query).assert_ok!
|
91
107
|
|
92
|
-
Responses::EntriesListResponse.new(resp, client: self)
|
108
|
+
Responses::EntriesListResponse.new(resp, client: self).tap(&:validate!)
|
93
109
|
end
|
94
110
|
|
95
|
-
def get_entry(
|
96
|
-
path =
|
111
|
+
def get_entry(id_or_link)
|
112
|
+
path =
|
113
|
+
if /^https?:\/\// =~ id_or_link.to_s
|
114
|
+
id_or_link
|
115
|
+
else
|
116
|
+
File.join(base_path, 'entries', id_or_link.to_s)
|
117
|
+
end
|
97
118
|
resp = get(path).assert_ok!
|
98
119
|
|
99
|
-
Responses::EntryShowResponse.new(resp, client: self)
|
120
|
+
Responses::EntryShowResponse.new(resp, client: self).tap(&:validate!)
|
100
121
|
end
|
101
122
|
|
102
|
-
def list_memory_verses(**query)
|
103
|
-
path =
|
123
|
+
def list_memory_verses(link = nil, **query)
|
124
|
+
path =
|
125
|
+
if link && /^https?:\/\// =~ link
|
126
|
+
link
|
127
|
+
else
|
128
|
+
File.join(base_path, 'memory_verses')
|
129
|
+
end
|
104
130
|
resp = get(path, query).assert_ok!
|
105
131
|
|
106
|
-
Responses::MemoryVersesListResponse.new(resp, client: self)
|
132
|
+
Responses::MemoryVersesListResponse.new(resp, client: self).tap(&:validate!)
|
107
133
|
end
|
108
134
|
|
109
|
-
def get_memory_verse(
|
110
|
-
path =
|
135
|
+
def get_memory_verse(id_or_link)
|
136
|
+
path =
|
137
|
+
if /^https?:\/\// =~ id_or_link.to_s
|
138
|
+
id_or_link
|
139
|
+
else
|
140
|
+
File.join(base_path, 'memory_verses', id_or_link.to_s)
|
141
|
+
end
|
111
142
|
resp = get(path).assert_ok!
|
112
143
|
|
113
|
-
Responses::MemoryVerseShowResponse.new(resp, client: self)
|
144
|
+
Responses::MemoryVerseShowResponse.new(resp, client: self).tap(&:validate!)
|
114
145
|
end
|
115
146
|
# rubocop:enable Naming/AccessorMethodName
|
116
147
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wcc-jtj-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Watermark Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-11-
|
11
|
+
date: 2022-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -52,6 +52,7 @@ files:
|
|
52
52
|
- lib/wcc/jtj/client/schemas/entry_summary.rb
|
53
53
|
- lib/wcc/jtj/client/schemas/memory_verse.rb
|
54
54
|
- lib/wcc/jtj/client/schemas/memory_verse_summary.rb
|
55
|
+
- lib/wcc/jtj/client/schemas/schema_validation_error.rb
|
55
56
|
- lib/wcc/jtj/client/schemas/scripture.rb
|
56
57
|
- lib/wcc/jtj/client/schemas/writer.rb
|
57
58
|
- lib/wcc/jtj/client/utils.rb
|