strongmind-schoology-client 0.1.1 → 0.1.2
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/Gemfile.lock +4 -10
- data/lib/schoology_client/client.rb +56 -0
- data/lib/schoology_client/configuration.rb +12 -0
- data/lib/schoology_client/generators/schoology_api/install_generator.rb +18 -0
- data/lib/schoology_client/resources/group.rb +12 -0
- data/lib/{schoology-client → schoology_client}/version.rb +1 -1
- data/lib/schoology_client.rb +41 -0
- data/lib/templates/rails/initializer/schoology-client.rb.tt +0 -5
- data/lib/templates/schoology_client_initializer.rb +13 -0
- metadata +22 -19
- data/lib/schoology-client/client.rb +0 -47
- data/lib/schoology-client/resources/group.rb +0 -11
- data/lib/schoology-client.rb +0 -27
- /data/lib/{schoology-client → schoology_client}/error.rb +0 -0
- /data/lib/{schoology-client → schoology_client}/object.rb +0 -0
- /data/lib/{schoology-client → schoology_client}/objects/group.rb +0 -0
- /data/lib/{schoology-client → schoology_client}/resource.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 271745541c3bb94e1ef9eded32dd55cf25bc3d78913b02214244f33ac2fb1456
|
4
|
+
data.tar.gz: d2b1548b934b5cd2779864d22ce82417b6438eae8d6081b8e45f96f5eaf1a8ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc5cebfd760eb646c78e27693524e651dd90b63516f77d58df9c1f0bce382bf27028948504fdb63aa7e4d5d7ca572507efd3abd6f8134f816696d181e5cd4a97
|
7
|
+
data.tar.gz: 78bd3b4d61b96a38338ee5af1a554ac0cd1e199634d589eaf63963a2462893d975cdec52eb2773e1803bfeaf91783d1b7b2544a32ef97f3bc518fb38946dd93f
|
data/Gemfile.lock
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
strongmind-schoology-client (0.1.
|
5
|
-
faraday (~> 1.
|
4
|
+
strongmind-schoology-client (0.1.2)
|
5
|
+
faraday (~> 1.1)
|
6
6
|
faraday_middleware (~> 1.2)
|
7
7
|
oauth (~> 1.1)
|
8
|
-
|
9
|
-
|
8
|
+
rails (~> 7.0)
|
9
|
+
railties (~> 7.0)
|
10
10
|
|
11
11
|
GEM
|
12
12
|
remote: https://rubygems.org/
|
@@ -78,7 +78,6 @@ GEM
|
|
78
78
|
tzinfo (~> 2.0)
|
79
79
|
ast (2.4.2)
|
80
80
|
builder (3.2.4)
|
81
|
-
coderay (1.1.3)
|
82
81
|
concurrent-ruby (1.2.2)
|
83
82
|
crass (1.0.6)
|
84
83
|
date (3.3.3)
|
@@ -138,8 +137,6 @@ GEM
|
|
138
137
|
net-smtp (0.3.3)
|
139
138
|
net-protocol
|
140
139
|
nio4r (2.5.9)
|
141
|
-
nokogiri (1.14.3-arm64-darwin)
|
142
|
-
racc (~> 1.4)
|
143
140
|
nokogiri (1.14.3-x86_64-darwin)
|
144
141
|
racc (~> 1.4)
|
145
142
|
oauth (1.1.0)
|
@@ -151,9 +148,6 @@ GEM
|
|
151
148
|
parallel (1.23.0)
|
152
149
|
parser (3.2.2.1)
|
153
150
|
ast (~> 2.4.1)
|
154
|
-
pry (0.14.2)
|
155
|
-
coderay (~> 1.1)
|
156
|
-
method_source (~> 1.0)
|
157
151
|
racc (1.6.2)
|
158
152
|
rack (2.2.7)
|
159
153
|
rack-test (2.1.0)
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'faraday'
|
3
|
+
require 'faraday_middleware'
|
4
|
+
require 'oauth'
|
5
|
+
|
6
|
+
module SchoologyClient
|
7
|
+
class Client
|
8
|
+
attr_reader :adapter, :oauth_consumer_key, :oauth_consumer_secret, :url, :stubs
|
9
|
+
|
10
|
+
def initialize(adapter: Faraday.default_adapter, stubs: nil)
|
11
|
+
@adapter = adapter
|
12
|
+
@oauth_consumer_key = SchoologyClient.configuration.oauth_consumer_key
|
13
|
+
@oauth_consumer_secret = SchoologyClient.configuration.oauth_consumer_secret
|
14
|
+
@url = SchoologyClient.configuration.url
|
15
|
+
|
16
|
+
#used for specs
|
17
|
+
@stubs = stubs
|
18
|
+
end
|
19
|
+
|
20
|
+
def group
|
21
|
+
GroupResource.new(self)
|
22
|
+
end
|
23
|
+
|
24
|
+
def connection
|
25
|
+
|
26
|
+
# Set up the OAuth 1.0 consumer
|
27
|
+
consumer = OAuth::Consumer.new(
|
28
|
+
@oauth_consumer_key,
|
29
|
+
@oauth_consumer_secret,
|
30
|
+
site: @url,
|
31
|
+
scheme: :header,
|
32
|
+
signature_method: 'PLAINTEXT',
|
33
|
+
realm: 'Schoology API'
|
34
|
+
)
|
35
|
+
|
36
|
+
# Set up the Faraday connection
|
37
|
+
connection = Faraday.new("#{@url}") do |conn|
|
38
|
+
conn.request :url_encoded
|
39
|
+
conn.request :json
|
40
|
+
|
41
|
+
conn.response :dates
|
42
|
+
conn.response :json, content_type: "application/json"
|
43
|
+
|
44
|
+
if @stubs
|
45
|
+
conn.adapter adapter, @stubs
|
46
|
+
else
|
47
|
+
conn.adapter adapter
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
return connection
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rails/generatorsi'
|
4
|
+
require 'schoology_client'
|
5
|
+
|
6
|
+
module SchoologyApi
|
7
|
+
module Generators
|
8
|
+
class InstallGenerator < Rails::Generators::Base
|
9
|
+
source_root File.expand_path("../../templates", __FILE__)
|
10
|
+
|
11
|
+
desc "Generate SchoologyClient initializer file for Rails applications"
|
12
|
+
|
13
|
+
def copy_initializer
|
14
|
+
template "schoology_api.rb", "config/initializers/schoology_api.rb"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module SchoologyClient
|
5
|
+
class GroupResource < Resource
|
6
|
+
def create(**attributes)
|
7
|
+
response_body = post_request("groups", body: attributes.to_json).body
|
8
|
+
return GroupResource.new(response_body)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "faraday"
|
4
|
+
require "faraday_middleware"
|
5
|
+
require "rails/all"
|
6
|
+
require_relative "schoology_client/version"
|
7
|
+
|
8
|
+
|
9
|
+
module SchoologyClient
|
10
|
+
|
11
|
+
class << self
|
12
|
+
attr_accessor :configuration
|
13
|
+
end
|
14
|
+
|
15
|
+
autoload :Client, "schoology_client/client"
|
16
|
+
autoload :Configuration, "schoology_client/configuration"
|
17
|
+
autoload :Object, "schoology_client/object"
|
18
|
+
autoload :Resource, "schoology_client/resource"
|
19
|
+
autoload :Error, "schoology_client/error"
|
20
|
+
autoload :Railtie, "schoology_client/railtie"
|
21
|
+
|
22
|
+
# High-level categories of Schoology API calls
|
23
|
+
autoload :GroupResource, "schoology_client/resources/group"
|
24
|
+
|
25
|
+
# Classes used to return a nicer object wrapping the response data
|
26
|
+
autoload :Group, "schoology/objects/group"
|
27
|
+
|
28
|
+
def self.configuration
|
29
|
+
@configuration ||= SchoologyClient::Configuration.new
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.configure
|
33
|
+
yield(configuration)
|
34
|
+
end
|
35
|
+
|
36
|
+
def initialize
|
37
|
+
@oauth_consumer_key = self.class.configuration.oauth_consumer_key
|
38
|
+
@oauth_consumer_secret = self.class.configuration.oauth_consumer_secret
|
39
|
+
@url = self.class.configuration.url
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
SchoologyClient.configure do |config|
|
4
|
+
|
5
|
+
# Schoology OAuth consumer key and secret can be found at https://app.schoology.com/api
|
6
|
+
config.oauth_consumer_key = ENV['SCHOOLOGY_OAUTH_CONSUMER_KEY']
|
7
|
+
config.oauth_consumer_secret = ENV['SCHOOLOGY_OAUTH_CONSUMER_SECRET']
|
8
|
+
|
9
|
+
# This is the base URL for the Schoology API. It should be set to
|
10
|
+
# to something like 'https://api.schoology.com/v1'
|
11
|
+
config.url = ENV['SCHOOLOGY_API_URL']
|
12
|
+
|
13
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strongmind-schoology-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Strongmind
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-05-
|
11
|
+
date: 2023-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: '1.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: '1.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: faraday_middleware
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,28 +58,28 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 7.
|
61
|
+
version: '7.0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 7.
|
68
|
+
version: '7.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: railties
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
75
|
+
version: '7.0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
82
|
+
version: '7.0'
|
83
83
|
description:
|
84
84
|
email:
|
85
85
|
- qwertytalk@strongmind.com
|
@@ -96,15 +96,18 @@ files:
|
|
96
96
|
- Gemfile.lock
|
97
97
|
- README.md
|
98
98
|
- Rakefile
|
99
|
-
- lib/
|
100
|
-
- lib/
|
101
|
-
- lib/
|
102
|
-
- lib/
|
103
|
-
- lib/
|
104
|
-
- lib/
|
105
|
-
- lib/
|
106
|
-
- lib/
|
99
|
+
- lib/schoology_client.rb
|
100
|
+
- lib/schoology_client/client.rb
|
101
|
+
- lib/schoology_client/configuration.rb
|
102
|
+
- lib/schoology_client/error.rb
|
103
|
+
- lib/schoology_client/generators/schoology_api/install_generator.rb
|
104
|
+
- lib/schoology_client/object.rb
|
105
|
+
- lib/schoology_client/objects/group.rb
|
106
|
+
- lib/schoology_client/resource.rb
|
107
|
+
- lib/schoology_client/resources/group.rb
|
108
|
+
- lib/schoology_client/version.rb
|
107
109
|
- lib/templates/rails/initializer/schoology-client.rb.tt
|
110
|
+
- lib/templates/schoology_client_initializer.rb
|
108
111
|
- sig/schoology.rbs
|
109
112
|
homepage: https://github.com/Strongmind/schoology-client
|
110
113
|
licenses: []
|
@@ -1,47 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'faraday'
|
3
|
-
require 'faraday_middleware'
|
4
|
-
require 'oauth'
|
5
|
-
|
6
|
-
module SchoologyClient
|
7
|
-
class Client
|
8
|
-
BASE_URL = "https://api.schoology.com/v1"
|
9
|
-
|
10
|
-
attr_reader :oauth_token, :adapter
|
11
|
-
|
12
|
-
def initialize(oauth_token:, adapter: Faraday.default_adapter, stubs: nil)
|
13
|
-
@oauth_token = oauth_token
|
14
|
-
@adapter = adapter
|
15
|
-
#used for tests
|
16
|
-
@stubs = stubs
|
17
|
-
end
|
18
|
-
|
19
|
-
def group
|
20
|
-
GroupResource.new(self)
|
21
|
-
end
|
22
|
-
|
23
|
-
def connection
|
24
|
-
consumer_key = "2c40b07185fbd031567affed01fcff630644fee80"
|
25
|
-
consumer_secret = "fd5863739d9f50922aa4f1cb9f4a4908"
|
26
|
-
|
27
|
-
# Set up the OAuth 1.0 consumer
|
28
|
-
consumer = OAuth::Consumer.new(
|
29
|
-
consumer_key,
|
30
|
-
consumer_secret,
|
31
|
-
site: BASE_URL,
|
32
|
-
scheme: :header,
|
33
|
-
signature_method: 'PLAINTEXT',
|
34
|
-
realm: 'Schoology API'
|
35
|
-
)
|
36
|
-
|
37
|
-
# Set up the Faraday connection
|
38
|
-
# Set up the Faraday connection
|
39
|
-
connection = Faraday.new(BASE_URL) do |conn|
|
40
|
-
conn.request :url_encoded
|
41
|
-
conn.response :json
|
42
|
-
conn.adapter Faraday.default_adapter
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
data/lib/schoology-client.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "faraday"
|
4
|
-
require "faraday_middleware"
|
5
|
-
require "rails/all"
|
6
|
-
require_relative "schoology-client/version"
|
7
|
-
|
8
|
-
module SchoologyClient
|
9
|
-
autoload :Client, "schoology-client/client"
|
10
|
-
autoload :Object, "schoology-client/object"
|
11
|
-
autoload :Resource, "schoology-client/resource"
|
12
|
-
autoload :Error, "schoology-client/error"
|
13
|
-
|
14
|
-
# High-level categories of Schoology API calls
|
15
|
-
autoload :GroupResource, "schoology-client/resources/group"
|
16
|
-
|
17
|
-
# Classes used to return a nicer object wrapping the response data
|
18
|
-
autoload :Group, "schoology/objects/group"
|
19
|
-
|
20
|
-
class Railtie < Rails::Railtie
|
21
|
-
initializer 'schoology-client.insert_into_initializer' do
|
22
|
-
config_path = Rails.root.join('config/initializers/schoology-client.rb')
|
23
|
-
template_path = File.expand_path('../../templates/rails/initializer/schoology-client.rb.tt', __FILE__)
|
24
|
-
File.write(config_path, ERB.new(File.read(template_path)).result)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|