openapply 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +22 -7
- data/examples/demo/README.md +4 -2
- data/lib/openapply/convert.rb +10 -6
- data/lib/openapply/get_student.rb +9 -2
- data/lib/openapply/get_students.rb +8 -4
- data/lib/openapply/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4ffbf0a9625607d27742d3d8eab1ab57802ce0f27dbfbb2ef2c5b52ec5da8d3
|
4
|
+
data.tar.gz: 457741241de4a8bf32e53feb790772a96393382934d1d7808d6c7b0cb10866aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60cd8ca6032a0f1e265eaf55e620432b8854d4e72e685235c7acaf5041a452d8506937db2da40ca038f23334a1a3b7491e0617d3df2f9bd998334c8bcbd03962
|
7
|
+
data.tar.gz: 9bcf4a9a22033330c1a4f4a168b9a33afcb1dbbff07ae29c616f0bb12cca68ee8c5f2aab2558d4c5aa620b799490341b26fb5e444be255301f4ce5da8f983471
|
data/README.md
CHANGED
@@ -5,19 +5,24 @@ This gem allows ruby access to the OpenApply API v1 - and supports the GET featu
|
|
5
5
|
|
6
6
|
### Still TODO
|
7
7
|
|
8
|
-
*
|
9
|
-
* write
|
10
|
-
*
|
11
|
-
*
|
8
|
+
* allow csv and xlsx reports with default summary info only?
|
9
|
+
* write PUTS methods - *currently api only allows status update*
|
10
|
+
* allow flattening and reject to work at any depth (with recursion?)
|
11
|
+
* write a recursive custom query - when results are more than one page
|
12
|
+
* speed up response when returning large number of records? - **looks like API is slow not sure if this can be sped up**
|
12
13
|
|
13
14
|
|
14
15
|
### CHANGE LOG
|
15
16
|
|
16
|
-
* **v0.2.
|
17
|
+
* **v0.2.3** - compatible with 0.2.x - 2017-11-23
|
18
|
+
- allow detailed queries *(_by_id & _by_status)* to skip payment information
|
19
|
+
- allow array, csv & xlsx transformations to skip payment queries (when no payment_info requested)
|
20
|
+
|
21
|
+
* **v0.2.2** - compatible with 0.2.x - 2017-11-21
|
17
22
|
- refactor and test url timeouts
|
18
23
|
- refactor openapply client
|
19
24
|
|
20
|
-
* **v0.2.1** -
|
25
|
+
* **v0.2.1** - compatible with 0.2.x - 2017-11-20
|
21
26
|
- convert api data into an array, csv or xlsx
|
22
27
|
- allow data flattening prep for post processing
|
23
28
|
- allow queries to lookup students with multiple statuses
|
@@ -115,6 +120,9 @@ Associates the above settings with HTTParty
|
|
115
120
|
# ATTRIBUTES: id, [:keys_to_un-nest], [:keys_to_exclude]
|
116
121
|
@oa.student_details_by_id(95)
|
117
122
|
@oa.student_details_by_id(95, [:custom_fields], [:parent_guardian])
|
123
|
+
# skip payment info -- (payments: [])
|
124
|
+
@oa.student_details_by_id(95, [], [], false)
|
125
|
+
@oa.student_details_by_id(95, [:custom_fields], [:parent_guardian], false)
|
118
126
|
#
|
119
127
|
# student summaries of a given status (recursively if more than on page)
|
120
128
|
@oa.students_by_status('applied')
|
@@ -122,13 +130,20 @@ Associates the above settings with HTTParty
|
|
122
130
|
# student details of a given status (recursively if more than on page)
|
123
131
|
@oa.students_details_by_status('applied')
|
124
132
|
@oa.students_details_by_status('applied', [:custom_fields])
|
125
|
-
@oa.students_details_by_status('applied',
|
133
|
+
@oa.students_details_by_status('applied', [], [:parent_guardian])
|
126
134
|
@oa.students_details_by_status('applied', [:custom_fields], [:parent_guardian])
|
135
|
+
# skip payment info (payments: [])
|
136
|
+
@oa.students_details_by_status('applied', [], [], false)
|
137
|
+
@oa.students_details_by_status('applied', [:custom_fields], [:parent_guardian], false)
|
127
138
|
#
|
128
139
|
# student details with multiple status (recursively if more than on page)
|
129
140
|
@oa.students_details_by_statuses(['applied','enrolled'], [:custom_fields])
|
130
141
|
@oa.students_details_by_statuses(['applied','enrolled'], nil, [:parent_guardian])
|
131
142
|
@oa.students_details_by_statuses(['applied','enrolled'], [:custom_fields], [:parent_guardian])
|
143
|
+
# speed up and skip payment info - returns [] in payment area
|
144
|
+
@oa.students_details_by_statuses(['applied','enrolled'], [], [], false)
|
145
|
+
# speed up and skip payment info - returns [] in payment area
|
146
|
+
@oa.students_details_by_statuses(['applied','enrolled'], [:custom_fields], [:parent_guardian], false)
|
132
147
|
#
|
133
148
|
# create an array
|
134
149
|
@oa.students_as_array_by_status('applied', [:custom_fields], [:parent_guardian], [:id, :name], {count: 1, keys: [:id, :name, :address]}, {count: 2, order: :newest, keys: [:date, :amount]} )
|
data/examples/demo/README.md
CHANGED
data/lib/openapply/convert.rb
CHANGED
@@ -29,10 +29,14 @@ module Convert
|
|
29
29
|
guardian_info={}, payment_info={})
|
30
30
|
#
|
31
31
|
check = check_details_keys_validity(flatten_keys, reject_keys)
|
32
|
-
return check
|
32
|
+
return check unless check.nil? # or check[:error].nil?
|
33
33
|
#
|
34
|
+
# by default get payment info (unless no payment info is requested)
|
35
|
+
get_payments = true
|
36
|
+
get_payments = false if payment_info.nil? or payment_info.empty?
|
37
|
+
# go get student details from api
|
34
38
|
students_hash = students_details_by_status( status,
|
35
|
-
flatten_keys, reject_keys)
|
39
|
+
flatten_keys, reject_keys, get_payments )
|
36
40
|
#
|
37
41
|
students_array = students_hash_to_array( students_hash,
|
38
42
|
student_keys, guardian_info, payment_info)
|
@@ -65,7 +69,7 @@ module Convert
|
|
65
69
|
guardian_info={}, payment_info={})
|
66
70
|
#
|
67
71
|
check = check_details_keys_validity(flatten_keys, reject_keys)
|
68
|
-
return check
|
72
|
+
return check unless check.nil? # or check[:error].nil?
|
69
73
|
# check = check_header_keys_validity(student_keys, guardian_info, payment_info)
|
70
74
|
# return check unless check.nil?
|
71
75
|
#
|
@@ -73,7 +77,7 @@ module Convert
|
|
73
77
|
flatten_keys, reject_keys,
|
74
78
|
student_keys, guardian_info, payment_info )
|
75
79
|
#
|
76
|
-
return students_array
|
80
|
+
return students_array if students_array.is_a? Hash
|
77
81
|
#
|
78
82
|
student_csv_txt = students_array_to_csv( students_array )
|
79
83
|
end
|
@@ -121,7 +125,7 @@ module Convert
|
|
121
125
|
guardian_info={}, payment_info={})
|
122
126
|
#
|
123
127
|
check = check_details_keys_validity(flatten_keys, reject_keys)
|
124
|
-
return check
|
128
|
+
return check unless check.nil? # or check[:error].nil?
|
125
129
|
# check = check_header_keys_validity(student_keys, guardian_info, payment_info)
|
126
130
|
# return check unless check.nil?
|
127
131
|
#
|
@@ -129,7 +133,7 @@ module Convert
|
|
129
133
|
flatten_keys, reject_keys,
|
130
134
|
student_keys, guardian_info, payment_info )
|
131
135
|
#
|
132
|
-
return students_array
|
136
|
+
return students_array if students_array.is_a? Hash
|
133
137
|
#
|
134
138
|
students_xlsx = students_array_to_xlsx( students_array )
|
135
139
|
|
@@ -51,6 +51,13 @@ module Get
|
|
51
51
|
# * +flatten_keys+ - an array of keys to bring to the top level
|
52
52
|
# (with this key prepened) -- default (blank does nothing)
|
53
53
|
# * +reject_keys+ - an array of keys to remove from the data -- default (blank does nothing)
|
54
|
+
# * +get_payments+ - default is true (but needs double lookup) - faster when false!
|
55
|
+
#
|
56
|
+
# === Usage
|
57
|
+
# students_details_by_id(95)
|
58
|
+
# students_details_by_id(95, [], [], false)
|
59
|
+
# students_details_by_id(95, [:custom_fields], [:parent_guardian])
|
60
|
+
# students_details_by_id(95, [:custom_fields], [:parent_guardian], false)
|
54
61
|
#
|
55
62
|
# === Returned Data
|
56
63
|
# returns the data structured as:
|
@@ -61,7 +68,7 @@ module Get
|
|
61
68
|
# payments: [ {} ] # all payments made via openapply
|
62
69
|
# }
|
63
70
|
# }
|
64
|
-
def student_details_by_id(id, flatten_keys=[], reject_keys=[])
|
71
|
+
def student_details_by_id(id, flatten_keys=[], reject_keys=[], get_payments=true)
|
65
72
|
|
66
73
|
check = check_details_keys_validity(flatten_keys, reject_keys)
|
67
74
|
return check unless check.nil? # or check[:error].nil?
|
@@ -69,7 +76,7 @@ module Get
|
|
69
76
|
# get full student record and guardian information
|
70
77
|
student_info = student_by_id( "#{id}" )
|
71
78
|
# get student payment records
|
72
|
-
payment_info = payments_by_id( "#{id}" )
|
79
|
+
payment_info = payments_by_id( "#{id}" ) if get_payments.eql? true
|
73
80
|
|
74
81
|
# be sure there is student data to process -- if not return an empty record
|
75
82
|
return {student: {id: id, empty: []}} if student_info.nil? or
|
@@ -10,16 +10,20 @@ module Get
|
|
10
10
|
#
|
11
11
|
# === Attributes
|
12
12
|
#
|
13
|
-
#
|
13
|
+
# +flatten_keys+ - brings these keys to the top level - prepending the group name to the key name -- we usually use:
|
14
14
|
# flatten_keys = [:custom_fields]
|
15
|
-
#
|
15
|
+
# +reject keys+ -- removes the data matching these keys -- we usually use:
|
16
16
|
# reject_keys = [:parent_guardian] (since this is duplicated)
|
17
|
+
# * +get_payments+ - default is true (but needs double lookup) - faster when false!
|
17
18
|
#
|
18
19
|
# === Usage
|
19
20
|
# students_details_by_status('applied')
|
21
|
+
# students_details_by_status('applied', [], [],false)
|
20
22
|
# students_details_by_status('applied', [:custom_fields], [:parent_guardian])
|
23
|
+
# students_details_by_status('applied', [:custom_fields], [:parent_guardian], false)
|
21
24
|
# students_details_by_statuses(['applied','enrolled'])
|
22
25
|
# students_details_by_statuses(['applied','enrolled'], [:custom_fields], [:parent_guardian])
|
26
|
+
# students_details_by_statuses(['applied','enrolled'], [:custom_fields], [:parent_guardian], false)
|
23
27
|
#
|
24
28
|
# === Returned Data
|
25
29
|
# returns the data structured as:
|
@@ -38,7 +42,7 @@ module Get
|
|
38
42
|
# }
|
39
43
|
# ]
|
40
44
|
# }
|
41
|
-
def students_details_by_status( status, flatten_keys=[], reject_keys=[] )
|
45
|
+
def students_details_by_status( status, flatten_keys=[], reject_keys=[], get_payments=true )
|
42
46
|
|
43
47
|
check = check_details_keys_validity(flatten_keys, reject_keys)
|
44
48
|
return check unless check.nil? # or check[:error].nil?
|
@@ -52,7 +56,7 @@ module Get
|
|
52
56
|
error_ids = []
|
53
57
|
student_records = []
|
54
58
|
ids[:student_ids].each do |id|
|
55
|
-
student = student_details_by_id( "#{id}", flatten_keys, reject_keys )
|
59
|
+
student = student_details_by_id( "#{id}", flatten_keys, reject_keys, get_payments )
|
56
60
|
|
57
61
|
error_ids << id if student.nil? or
|
58
62
|
student[:student].nil? or
|
data/lib/openapply/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openapply
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bill Tihen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|