ps_utilities 1.0.1 → 1.0.4
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/ps_utilities/connection.rb +3 -1
- data/lib/ps_utilities/pre_built_post.rb +20 -9
- data/lib/ps_utilities/version.rb +1 -1
- metadata +75 -19
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1e387aed718dd438a8802b80c32b8ebca545519d5448c0c6597279127306b92c
|
|
4
|
+
data.tar.gz: ed5b94b10309d036c5573c926b09b86838659f3663d2bc1246ad7c9b5c71a01e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9080a06391f8e4d94fd5d12433e04a2fcef9f2ac1479b1b5e34306a05bc568462249205e911ec939908e87fe58233664579fcdaa8d70a83938b386450535cba4
|
|
7
|
+
data.tar.gz: cf7c1e93d11e3568d5fb9740c193724e3c41c9d244e439deab6c18d4da3dac8d7c0daa7dc8d02de13a390d1791e3d5dc178ab2f782d662902155ae935cf8a7d8
|
|
@@ -72,6 +72,8 @@ module PsUtilities
|
|
|
72
72
|
else
|
|
73
73
|
send(command, params)
|
|
74
74
|
end
|
|
75
|
+
rescue ArgumentError => error
|
|
76
|
+
return {"error_message" => error.message}
|
|
75
77
|
end
|
|
76
78
|
|
|
77
79
|
private
|
|
@@ -146,7 +148,7 @@ module PsUtilities
|
|
|
146
148
|
end
|
|
147
149
|
|
|
148
150
|
def auth_headers(credentials = client)
|
|
149
|
-
{ '
|
|
151
|
+
{ 'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8',
|
|
150
152
|
'Accept' => 'application/json',
|
|
151
153
|
'Authorization' => 'Basic ' + encode64_client(credentials)
|
|
152
154
|
}
|
|
@@ -51,6 +51,8 @@ module PsUtilities
|
|
|
51
51
|
def update_students(params)
|
|
52
52
|
action = "UPDATE"
|
|
53
53
|
kids_api_array = build_kids_api_array(action, params)
|
|
54
|
+
return kids_api_array if kids_api_array.empty?
|
|
55
|
+
|
|
54
56
|
options = { body: { students: { student: kids_api_array } }.to_json }
|
|
55
57
|
answer = api(:post, "/ws/v1/student", options)
|
|
56
58
|
return answer.parsed_response if answer.code.to_s.eql? "200"
|
|
@@ -93,18 +95,20 @@ module PsUtilities
|
|
|
93
95
|
#]
|
|
94
96
|
# @note this is then sent to the API call with a body tag
|
|
95
97
|
def build_kids_api_array(action, params)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
98
|
+
# ugly protection against bad data feeds - but it works
|
|
99
|
+
# TODO: refactor with an elegant assertion?
|
|
100
|
+
if params.nil? or not params.is_a?(Hash) or params[:students].nil? or not params[:students].is_a?(Array) or params[:students].empty? or not params[:students][0].is_a?(Hash)
|
|
101
|
+
raise ArgumentError, "PARAMS format is: {students: [{kid_data1}, {kid_data2}]} - NOT OK: #{params}"
|
|
102
|
+
end
|
|
103
|
+
if action.nil? or not action.is_a?(String) or action.empty? or not %[INSERT UPDATE].include?(action)
|
|
104
|
+
raise ArgumentError, "ACTION must be: 'INSERT' or 'UPDATE' - NOT OK: #{action}"
|
|
102
105
|
end
|
|
106
|
+
api_array = []
|
|
107
|
+
students = params.dig(:students)
|
|
103
108
|
students.each do |kid|
|
|
104
|
-
# kid[:las_extensions] = true if params[:las_extensions]
|
|
105
109
|
api_array << build_kid_attributes(action, kid)
|
|
106
110
|
end
|
|
107
|
-
|
|
111
|
+
api_array
|
|
108
112
|
end
|
|
109
113
|
|
|
110
114
|
# prepare data to update student database extensions
|
|
@@ -180,6 +184,12 @@ module PsUtilities
|
|
|
180
184
|
# ]
|
|
181
185
|
# }
|
|
182
186
|
def build_kid_attributes(action, kid)
|
|
187
|
+
if kid.nil? or not kid.is_a?(Hash) or kid.empty?
|
|
188
|
+
raise ArgumentError, "STUDENT format is: {students: [{kid_data1}, {kid_data2}]} - NOT OK: #{kid}"
|
|
189
|
+
end
|
|
190
|
+
if action.nil? or not action.is_a?(String) or action.empty? or not %[INSERT UPDATE].include?(action)
|
|
191
|
+
raise ArgumentError, "ACTION must be: 'INSERT' or 'UPDATE' - NOT OK: #{action}"
|
|
192
|
+
end
|
|
183
193
|
# ALWAYS NEEDED INFO
|
|
184
194
|
attribs = {action: action}
|
|
185
195
|
attribs[:client_uid] = kid[:student_id].to_s
|
|
@@ -190,7 +200,8 @@ module PsUtilities
|
|
|
190
200
|
case action
|
|
191
201
|
when 'INSERT'
|
|
192
202
|
# must be set on creation (INSERT)
|
|
193
|
-
attribs[:local_id]
|
|
203
|
+
attribs[:local_id] = kid[:local_id].to_i if kid[:local_id]
|
|
204
|
+
attribs[:local_id] = kid[:student_id].to_i if kid[:student_id]
|
|
194
205
|
# to create an account both first and last name must be present
|
|
195
206
|
attribs[:name][:last_name] = kid[:last_name] if kid[:last_name] or kid[:first_name]
|
|
196
207
|
attribs[:name][:first_name] = kid[:first_name] if kid[:last_name] or kid[:first_name]
|
data/lib/ps_utilities/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ps_utilities
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Lee Weisbecker
|
|
8
8
|
- Bill Tihen
|
|
9
|
-
autorequire:
|
|
10
9
|
bindir: exe
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: httparty
|
|
@@ -17,70 +16,130 @@ dependencies:
|
|
|
17
16
|
requirements:
|
|
18
17
|
- - "~>"
|
|
19
18
|
- !ruby/object:Gem::Version
|
|
20
|
-
version: '0.
|
|
19
|
+
version: '0.18'
|
|
21
20
|
type: :runtime
|
|
22
21
|
prerelease: false
|
|
23
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
23
|
requirements:
|
|
25
24
|
- - "~>"
|
|
26
25
|
- !ruby/object:Gem::Version
|
|
27
|
-
version: '0.
|
|
26
|
+
version: '0.18'
|
|
28
27
|
- !ruby/object:Gem::Dependency
|
|
29
|
-
name:
|
|
28
|
+
name: base64
|
|
30
29
|
requirement: !ruby/object:Gem::Requirement
|
|
31
30
|
requirements:
|
|
32
31
|
- - "~>"
|
|
33
32
|
- !ruby/object:Gem::Version
|
|
34
|
-
version:
|
|
35
|
-
type: :
|
|
33
|
+
version: 0.3.0
|
|
34
|
+
type: :runtime
|
|
36
35
|
prerelease: false
|
|
37
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
37
|
requirements:
|
|
39
38
|
- - "~>"
|
|
40
39
|
- !ruby/object:Gem::Version
|
|
41
|
-
version:
|
|
40
|
+
version: 0.3.0
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: bigdecimal
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '3.3'
|
|
48
|
+
- - ">="
|
|
49
|
+
- !ruby/object:Gem::Version
|
|
50
|
+
version: 3.3.1
|
|
51
|
+
type: :runtime
|
|
52
|
+
prerelease: false
|
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
54
|
+
requirements:
|
|
55
|
+
- - "~>"
|
|
56
|
+
- !ruby/object:Gem::Version
|
|
57
|
+
version: '3.3'
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 3.3.1
|
|
61
|
+
- !ruby/object:Gem::Dependency
|
|
62
|
+
name: csv
|
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '3.3'
|
|
68
|
+
- - ">="
|
|
69
|
+
- !ruby/object:Gem::Version
|
|
70
|
+
version: 3.3.5
|
|
71
|
+
type: :runtime
|
|
72
|
+
prerelease: false
|
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
74
|
+
requirements:
|
|
75
|
+
- - "~>"
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: '3.3'
|
|
78
|
+
- - ">="
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: 3.3.5
|
|
81
|
+
- !ruby/object:Gem::Dependency
|
|
82
|
+
name: bundler
|
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
|
84
|
+
requirements:
|
|
85
|
+
- - ">="
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: '2.5'
|
|
88
|
+
type: :development
|
|
89
|
+
prerelease: false
|
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
91
|
+
requirements:
|
|
92
|
+
- - ">="
|
|
93
|
+
- !ruby/object:Gem::Version
|
|
94
|
+
version: '2.5'
|
|
42
95
|
- !ruby/object:Gem::Dependency
|
|
43
96
|
name: rake
|
|
44
97
|
requirement: !ruby/object:Gem::Requirement
|
|
45
98
|
requirements:
|
|
46
99
|
- - "~>"
|
|
47
100
|
- !ruby/object:Gem::Version
|
|
48
|
-
version: '
|
|
101
|
+
version: '13.0'
|
|
49
102
|
type: :development
|
|
50
103
|
prerelease: false
|
|
51
104
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
105
|
requirements:
|
|
53
106
|
- - "~>"
|
|
54
107
|
- !ruby/object:Gem::Version
|
|
55
|
-
version: '
|
|
108
|
+
version: '13.0'
|
|
56
109
|
- !ruby/object:Gem::Dependency
|
|
57
110
|
name: rspec
|
|
58
111
|
requirement: !ruby/object:Gem::Requirement
|
|
59
112
|
requirements:
|
|
60
113
|
- - "~>"
|
|
61
114
|
- !ruby/object:Gem::Version
|
|
62
|
-
version: '3.
|
|
115
|
+
version: '3.9'
|
|
63
116
|
type: :development
|
|
64
117
|
prerelease: false
|
|
65
118
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
119
|
requirements:
|
|
67
120
|
- - "~>"
|
|
68
121
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: '3.
|
|
122
|
+
version: '3.9'
|
|
70
123
|
- !ruby/object:Gem::Dependency
|
|
71
124
|
name: webmock
|
|
72
125
|
requirement: !ruby/object:Gem::Requirement
|
|
73
126
|
requirements:
|
|
74
127
|
- - "~>"
|
|
75
128
|
- !ruby/object:Gem::Version
|
|
76
|
-
version: '3.
|
|
129
|
+
version: '3.26'
|
|
130
|
+
- - ">="
|
|
131
|
+
- !ruby/object:Gem::Version
|
|
132
|
+
version: 3.26.1
|
|
77
133
|
type: :development
|
|
78
134
|
prerelease: false
|
|
79
135
|
version_requirements: !ruby/object:Gem::Requirement
|
|
80
136
|
requirements:
|
|
81
137
|
- - "~>"
|
|
82
138
|
- !ruby/object:Gem::Version
|
|
83
|
-
version: '3.
|
|
139
|
+
version: '3.26'
|
|
140
|
+
- - ">="
|
|
141
|
+
- !ruby/object:Gem::Version
|
|
142
|
+
version: 3.26.1
|
|
84
143
|
description: 'Uses oauth2 to connection to the Powerschool API. Heavily refactored
|
|
85
144
|
code (not dependent on Rails) starting with: https://github.com/TomK32/powerschool'
|
|
86
145
|
email:
|
|
@@ -100,7 +159,6 @@ homepage: https://github.com/LAS-IT/ps_utilities
|
|
|
100
159
|
licenses:
|
|
101
160
|
- MIT
|
|
102
161
|
metadata: {}
|
|
103
|
-
post_install_message:
|
|
104
162
|
rdoc_options: []
|
|
105
163
|
require_paths:
|
|
106
164
|
- lib
|
|
@@ -115,9 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
115
173
|
- !ruby/object:Gem::Version
|
|
116
174
|
version: '0'
|
|
117
175
|
requirements: []
|
|
118
|
-
|
|
119
|
-
rubygems_version: 2.7.6
|
|
120
|
-
signing_key:
|
|
176
|
+
rubygems_version: 3.6.9
|
|
121
177
|
specification_version: 4
|
|
122
178
|
summary: Simple ruby wrapper for Powerschool API interaction.
|
|
123
179
|
test_files: []
|