openapply 0.2.10 → 0.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1db17dca4047fa3c54362d33e4a1ce0691c1d9e3b8625755917e3b690d262bc6
4
- data.tar.gz: 7ed84e202dc03228432c3f14fb91cf8f51211ad2a8c99e869a7d4341a9b84e82
3
+ metadata.gz: 2d215ce3e5704b8f304e92d62662e7c2cb43caa5de24c4048e08c40d69021be1
4
+ data.tar.gz: 8fc1fffd0992271dbbf8830135d7bfb21d16c37bf716560555b262e51d82496c
5
5
  SHA512:
6
- metadata.gz: 6656549f87187da3bcfe96b2c7cab0f49a77b624189f19b288778c6330b1c2d05d7e2aa8d141282682ab9910552b41c1307589d8a29d3d049f2f27e4522bd8c8
7
- data.tar.gz: 29563f4ed5d34edb691e368724e8d17db74cb022e24b93077d2cf479fa8ce04d349b3f7c31ae81c2f086bcc9df5db8b00061e08f5cc30189f13136c57e64cc87
6
+ metadata.gz: 3d83905b01dd0f99615be384bc96dc463cfb7c73043bc3f4435ebdbeee56005b391744e2127cd9b18158bd0738c45e719c8471703c8ea7312249f4762be642b4
7
+ data.tar.gz: 655011c0694be255269277ec02bc3aff80828eedf48bb637545240671a763a70cd8721aa2f55cc516e013a2d159f0d21ff3c59968131e9fbd234a8dc863cd3e7
data/.gitignore CHANGED
@@ -13,6 +13,7 @@
13
13
 
14
14
  # rspec failure tracking
15
15
  .rspec_status
16
+ .coveralls.yml
16
17
 
17
18
  # !examples/demo/.rbenv-vars
18
19
  examples/demo/.rbenv-vars
data/.travis.yml CHANGED
@@ -1,14 +1,14 @@
1
1
  sudo: false
2
-
3
2
  language: ruby
4
-
5
3
  branches:
6
4
  only:
7
5
  - master
8
6
  - staging
9
-
10
7
  rvm:
11
- - 2.4.2
12
-
13
- before_install: gem install bundler -v 1.16.0
14
- # before_install: gem install bundler -v 1.15.4
8
+ - 2.5.0
9
+ before_install:
10
+ - gem update --system
11
+ - gem install bundler -v 1.16.0
12
+ env:
13
+ global:
14
+ secure: IVOwOQStCtCmZBLQszuNwWyYUapjAc3eNOH4trC/hNoYrrtse+WT2c4fRbvL3dFt+Iu/hFxVmtS9Gefmidfp0vCRLm/tPiL2Qsq97brZgb1oekcYx0QlelwXEk76QekIc9RXRle/UZArH+XLcsYzgW2mCVqe6IHElqQAilleu7B5yxtyor/Z+zMfi2d6qYJDMYockISlcmBG1ydshRqrh6sYXCeQutXdPKz1OBuSzwTiz2YcZfVV6SIqkavn6KfQCIQJNBCEU93i54i9f8IV1qrtYLMUfEV4Fah/MT5VGOGH4kNG5OTGna++oqrA9wXRZxPuEX/5e4kELxzg775Wvn9Jfq/NAZVVC63Uk84cags9yp98x0p1Le+JWunQNV1FMb4iuK7wnI07iT1VCtweiPZ6zobW50IyjOS3teyElikBF+j46x63vLNMmzlUU7VkYXTorfr/EOX6v4Pwkgde+b4SIvCemq0pYEahxumY+z6QFbHkvJ7xXiV5n5TLtI1WaLiB/X95X+gF3DUALf3CBgj5rx6cIIgTb5nON8OGYKVo6Oym2VvoSXiCRo2eFjQxtt5fT0AGvDPDg8AlsA+sMR9ISOk2xEkKEM9YG8XIwlQPctZdNHXLlq/rgRuQVvCjlDpbGL202Nw6LGav+dIrnnuGfCIyASC8pAALvmz5ZWw=
data/.travis.yml.bak ADDED
@@ -0,0 +1,18 @@
1
+ sudo: false
2
+
3
+ language: ruby
4
+
5
+ branches:
6
+ only:
7
+ - master
8
+ - staging
9
+
10
+ rvm:
11
+ - 2.5.0
12
+
13
+ before_install:
14
+ # needed for ruby 2.5.0
15
+ # https://github.com/travis-ci/travis-ci/issues/8978
16
+ - gem update --system
17
+ - gem install bundler -v 1.16.0
18
+ # before_install: gem install bundler -v 1.15.4
data/CHANGE_LOG.md ADDED
@@ -0,0 +1,50 @@
1
+ ### Openapply CHANGE LOG
2
+
3
+ * **v0.3.0** - compatible with 0.3.x - 2018-01-31
4
+ - NOT compatible with 0.2.x
5
+ - migrate to new documentation style
6
+ - refactor to use options - simplify and improve usage
7
+ - refactor to be more modular (usage will change)
8
+
9
+ * **v0.2.10** - compatible with 0.2.x - 2018-01-04
10
+ - updated rake and webmock gems in deve
11
+ - removed roo - not needed
12
+
13
+ * **v0.2.9** - compatible with 0.2.x - 2017-12-13 *(https://github.com/straydogstudio/axlsx_rails/issues/77)*
14
+ - separated convert (& its dependencies) into separate modules that can be loaded on need in the next version (0.3.x)
15
+ - hash to array now handles both student_details and student_summaries (this also allows conversion then to csv)
16
+
17
+ * **v0.2.8** - compatible with 0.2.x - 2017-12-11 *(https://github.com/randym/axlsx/issues/234)*
18
+ - axlsx - passes tests - but won't properly install inside another project (even using gem install ./openapply-0.2.7) - will look for a solution
19
+
20
+ * **v0.2.7** - compatible with 0.2.x - 2017-12-10
21
+ - safely re-enabled axlsx by using the master branch and upgradeing rubyzip
22
+
23
+ * **v0.2.6** - compatible with 0.2.x - 2017-12-08
24
+ - allow ssh/scp options to be passed
25
+
26
+ * **v0.2.5** - compatible with 0.2.x - 2017-11-30
27
+ - removed a reference to AXLSX in scp transfers *(haven't figured out how to test that yet!)*
28
+
29
+ * **v0.2.4** - compatible with 0.2.x - 2017-11-30
30
+ - rubyzip 1.1.7 - has a serious security flaw - Axlsx and Roo cannot use rubyzip 1.2.1 -- YET (which doesn't have the flaw) - so xlsx features are disabled until rubyzip 1.2.1 can be used by both roo and axlsx. **CSV** conversions are still usable. **BIG THANKS TO GitHub for the notification!**
31
+
32
+ * **v0.2.3** - compatible with 0.2.x - 2017-11-23
33
+ - allow detailed queries *(_by_id & _by_status)* to skip payment information
34
+ - allow array, csv & xlsx transformations to skip payment queries (when no payment_info requested)
35
+
36
+ * **v0.2.2** - compatible with 0.2.x - 2017-11-21
37
+ - refactor and test url timeouts
38
+ - refactor openapply client
39
+
40
+ * **v0.2.1** - compatible with 0.2.x - 2017-11-20
41
+ - convert api data into an array, csv or xlsx
42
+ - allow data flattening prep for post processing
43
+ - allow queries to lookup students with multiple statuses
44
+ - allow scp string object to file export (no automated tests)
45
+
46
+ * **v0.2.0** - first release -- **NOT** compatible with 0.1.0 -- 2017-11-07
47
+ - get student details of a give status (and pure api calls)
48
+ - recursive query until all receipt of all records received
49
+
50
+ * **v0.1.0** - test release -- 2017-11-01
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- openapply (0.2.10)
4
+ openapply (0.3.0)
5
5
  httparty (~> 0.15)
6
6
  json (~> 2.1)
7
7
  net-scp (~> 1.2)
@@ -12,6 +12,8 @@ GEM
12
12
  specs:
13
13
  addressable (2.5.2)
14
14
  public_suffix (>= 2.0.2, < 4.0)
15
+ codacy-coverage (1.1.8)
16
+ simplecov
15
17
  coderay (1.1.2)
16
18
  crack (0.4.3)
17
19
  safe_yaml (~> 1.0.0)
@@ -43,14 +45,14 @@ GEM
43
45
  rspec-mocks (3.7.0)
44
46
  diff-lcs (>= 1.2.0, < 2.0)
45
47
  rspec-support (~> 3.7.0)
46
- rspec-support (3.7.0)
48
+ rspec-support (3.7.1)
47
49
  safe_yaml (1.0.4)
48
50
  simplecov (0.15.1)
49
51
  docile (~> 1.1.0)
50
52
  json (>= 1.8, < 3)
51
53
  simplecov-html (~> 0.10.0)
52
54
  simplecov-html (0.10.2)
53
- webmock (3.2.1)
55
+ webmock (3.3.0)
54
56
  addressable (>= 2.3.6)
55
57
  crack (>= 0.3.2)
56
58
  hashdiff
@@ -60,11 +62,11 @@ PLATFORMS
60
62
 
61
63
  DEPENDENCIES
62
64
  bundler (~> 1.15)
65
+ codacy-coverage (~> 1.1)
63
66
  openapply!
64
67
  pry (~> 0.11)
65
68
  rake (~> 12.3)
66
69
  rspec (~> 3.7)
67
- simplecov (~> 0.15)
68
70
  webmock (~> 3.2)
69
71
 
70
72
  BUNDLED WITH
data/MM ADDED
File without changes
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Build Status](https://travis-ci.org/btihen/openapply.svg?branch=master)](https://travis-ci.org/btihen/openapply) | [![Dependency Status](https://beta.gemnasium.com/badges/github.com/btihen/openapply.svg)](https://beta.gemnasium.com/projects/github.com/btihen/openapply) | [![Known Vulnerabilities](https://snyk.io/test/github/btihen/openapply/badge.svg?targetFile=Gemfile.lock)](https://snyk.io/test/github/btihen/openapply?targetFile=Gemfile.lock)
1
+ [![Build Status](https://travis-ci.org/btihen/openapply.svg?branch=master)](https://travis-ci.org/btihen/openapply) [![Dependency Status](https://beta.gemnasium.com/badges/github.com/btihen/openapply.svg)](https://beta.gemnasium.com/projects/github.com/btihen/openapply) [![Known Vulnerabilities](https://snyk.io/test/github/btihen/openapply/badge.svg?targetFile=Gemfile.lock)](https://snyk.io/test/github/btihen/openapply?targetFile=Gemfile.lock) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/7b2062680fd14704bd321baef8dbddce)](https://www.codacy.com/app/btihen/openapply?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=btihen/openapply&amp;utm_campaign=Badge_Grade) [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/7b2062680fd14704bd321baef8dbddce)](https://www.codacy.com/app/btihen/openapply?utm_source=github.com&utm_medium=referral&utm_content=btihen/openapply&utm_campaign=Badge_Coverage) [![Code Quality](https://bettercodehub.com/edge/badge/btihen/shop?branch=master)](https://bettercodehub.com/) [![Coverage Status](https://coveralls.io/repos/github/btihen/openapply/badge.svg?branch=master)](https://coveralls.io/github/btihen/openapply?branch=master)
2
2
 
3
3
 
4
4
 
@@ -10,55 +10,11 @@ This gem allows ruby access to the OpenApply API v1 - and supports the GET featu
10
10
 
11
11
  ### Still TODO
12
12
 
13
- * allow flattening to work with arrays?
14
- * allow flattening and reject to work at 2 levels of depth?
15
- * make tests for scp / ssh (at least data type conversions)?
16
- * write PUTS methods - *currently api only allows status update*
17
- * write a recursive custom query - when results are more than one page
18
- * allow flattening and reject to work at any depth (with recursion)?
19
- * speed up response when returning large number of records? - **looks like API**
20
-
21
13
 
22
14
  ### CHANGE LOG
23
15
 
24
- * **v0.2.9** - compatible with 0.2.x - 2017-12-13 *(https://github.com/straydogstudio/axlsx_rails/issues/77)*
25
- - separated convert (& its dependencies) into separate modules that can be loaded on need in the next version (0.3.x)
26
- - hash to array now handles both student_details and student_summaries (this also allows conversion then to csv)
27
-
28
- * **v0.2.8** - compatible with 0.2.x - 2017-12-11 *(https://github.com/randym/axlsx/issues/234)*
29
- - axlsx - passes tests - but won't properly install inside another project (even using gem install ./openapply-0.2.7) - will look for a solution
30
-
31
- * **v0.2.7** - compatible with 0.2.x - 2017-12-10
32
- - safely re-enabled axlsx by using the master branch and upgradeing rubyzip
33
-
34
- * **v0.2.6** - compatible with 0.2.x - 2017-12-08
35
- - allow ssh/scp options to be passed
36
-
37
- * **v0.2.5** - compatible with 0.2.x - 2017-11-30
38
- - removed a reference to AXLSX in scp transfers *(haven't figured out how to test that yet!)*
39
-
40
- * **v0.2.4** - compatible with 0.2.x - 2017-11-30
41
- - rubyzip 1.1.7 - has a serious security flaw - Axlsx and Roo cannot use rubyzip 1.2.1 -- YET (which doesn't have the flaw) - so xlsx features are disabled until rubyzip 1.2.1 can be used by both roo and axlsx. **CSV** conversions are still usable. **BIG THANKS TO GitHub for the notification!**
42
-
43
- * **v0.2.3** - compatible with 0.2.x - 2017-11-23
44
- - allow detailed queries *(_by_id & _by_status)* to skip payment information
45
- - allow array, csv & xlsx transformations to skip payment queries (when no payment_info requested)
46
-
47
- * **v0.2.2** - compatible with 0.2.x - 2017-11-21
48
- - refactor and test url timeouts
49
- - refactor openapply client
50
-
51
- * **v0.2.1** - compatible with 0.2.x - 2017-11-20
52
- - convert api data into an array, csv or xlsx
53
- - allow data flattening prep for post processing
54
- - allow queries to lookup students with multiple statuses
55
- - allow scp string object to file export (no automated tests)
16
+ [Change Log](https://github.com/btihen/openapply/blob/master/CHANGE_LOG.md)
56
17
 
57
- * **v0.2.0** - first release -- **NOT** compatible with 0.1.0 -- 2017-11-07
58
- - get student details of a give status (and pure api calls)
59
- - recursive query until all receipt of all records received
60
-
61
- * **v0.1.0** - test release -- 2017-11-01
62
18
 
63
19
  ### Installation
64
20
 
@@ -116,7 +72,7 @@ Associates the above settings with HTTParty
116
72
  (so that you can access the OpenApply api)
117
73
 
118
74
  ```ruby
119
- @oa = OpenApply::Client.new
75
+ @oa = Openapply::Client.new
120
76
  ```
121
77
 
122
78
  ### USAGE
@@ -133,160 +89,30 @@ Associates the above settings with HTTParty
133
89
  @oa.base_path
134
90
  @oa.api_timeout
135
91
  @oa.api_records
136
- #
137
- # directly call against the OA API
138
- @oa.oa_api_call('/api/v1/students/?status=accepted&count=5&auth_token=add_api_key')
139
- #
140
-
141
- # Individual students records (separated)
142
- @oa.student_by_id(95)
143
- @oa.payments_by_id(95)
144
- #
145
- # individual student records combined & possible pre-processing
146
- @oa.student_details_by_id(95)
147
-
148
- # ATTRIBUTES: id, [:keys_to_un-nest], [:keys_to_exclude]
149
- @oa.student_details_by_id(95, [:custom_fields], [:parent_guardian])
150
-
151
- # skip payment info -- (payments: [])
152
- @oa.student_details_by_id(95, [:custom_fields], [:parent_guardian], false)
153
- #
154
- # student summaries of a given status (recursively if more than on page)
155
- @oa.students_by_status('applied')
156
- #
157
- # student details of a given status (recursively if more than on page)
158
- @oa.students_details_by_status('applied')
159
- @oa.students_details_by_status('applied', [:custom_fields], [:parent_guardian])
160
- # skip payment info (payments: [])
161
- @oa.students_details_by_status('applied', [:custom_fields], [:parent_guardian], false)
162
- #
163
- # student details with multiple status (recursively if more than on page)
164
- @oa.students_details_by_statuses(['applied','enrolled'], [:custom_fields])
165
- #
166
- # create an array
167
- @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]} )
168
- # multiple statuses into an array
169
- @oa.students_as_array_by_statuses(['applied','enrolled'], [:custom_fields], [:parent_guardian], [:id, :name], {count: 1, keys: [:id, :name, :address]}, {count: 2, order: :newest, keys: [:date, :amount]} )
170
- #
171
- # Create a csv string
172
- # multiple status into
173
- csv_string=@oa.students_as_csv_by_statuses(['applied','enrolled'],[:custom_fields], [:parent_guardian], [:id, :name], {type: :guardians, count: 1, keys: [:id, :name, :address]}, {type: :payments, count: 2, order: :newest, keys: [:date, :amount]} )
174
- #
175
- # send CSV to a remote server as a file - using ssh-keys
176
- @oa.send_data_to_remote_server(csv_string, 'hostname.domain.name', 'myusername', '/home/myusername/xfer/myexport.csv', '0750')
177
- #
178
- # send CSV to a remote server as a file - using ssh-keys - don't check host_key of remote server
179
- @oa.send_data_to_remote_server( csv_string, 'hostname.domain.name', 'myusername', '/home/myusername/xfer/myexport.csv', '0750', {verify_host_key: false} )
180
-
181
- # Create XLSX file
182
- # @oa.students_as_xlsx_by_status('applied',[:custom_fields], [:parent_guardian], [:id, :name], {type: :guardians, count: 1, keys: [:id, :name, :address]}, {type: :payments, count: 2, order: :newest, keys: [:date, :amount]} )
183
- # # # multiple status into
184
- # xlsx_obj=@oa.students_as_xlsx_by_statuses(['applied','enrolled'],[:custom_fields], [:parent_guardian], [:id, :name], {type: :guardians, count: 1, keys: [:id, :name, :address]}, {type: :payments, count: 2, order: :newest, keys: [:date, :amount]} )
185
- # #
186
- # # send XLSX to a remote server as a file - using ssh-keys
187
- # @oa.send_data_to_remote_server(xlsx_obj, 'hostname.domain.name', 'myusername', '/home/myusername/xfer/myexport.xlsx', '0750')
188
- ```
189
-
190
- #### INDIVIDUAL STUDENT QUERIES
191
-
192
- ```ruby
193
- # all student info & parents info -- returns the data straight from OpenApply
194
- student_record = @oa.student_by_id(95)
195
-
196
- # all payments associated with a student -- returns the data straight from OpenApply
197
- student_payments = @oa.payments_by_id(95)
198
-
199
- # Returns all student details (combines studnet, parent and payments)
200
- # **flatten_keys** - brings these keys to the top level - prepending the group name to the key name -- we usually use:
201
- # flatten_keys = [:custom_fields]
202
- # **reject keys** -- removes the data matching these keys -- we usually use:
203
- # reject_keys = [:parent_guardian] (since this is duplicated)
204
- # returns the data structured as:
205
- # { student: {
206
- # id: xxx,
207
- # record: {xxx} # complete student record
208
- # guardians: [ {} ] # all guardian information
209
- # payments: [ {} ] # all payments made via openapply
210
- # }
211
- # }
212
- @oa.student_details_by_id(95)
213
- # or
214
- @oa.student_details_by_id(95, [:custom_fields], [:parent_guardian])
215
- ```
216
92
 
217
- #### DATA OF GROUPS OF STUDENTS
218
-
219
- searched recursively - collects all pages of records
220
-
221
- ```ruby
222
- # SUMMARY INFO of students with a given status - ONLY ONE STATUS string!
223
- @oa.students_by_status('applied')
224
-
225
- # STUDENT IDs of students with a given status or array of statuses
226
- ids = @oa.student_ids_by_status('applied')
227
- ids = @oa.student_ids_by_statuses(['applied','enrolled'])
228
- # [1, 2, 60]
229
- #
230
- # FULL STUDENT DETAILS for all students of a given status or statuses
231
- # **returned as a hash)** -- attributes are (status, flatten_keys, reject_keys)
232
- # example usage:
233
- @oa.students_details_by_status('applied')
234
- @oa.students_details_by_status('applied',[:custom_fields])
235
- @oa.students_details_by_status('applied', [:custom_fields], [:parent_guardian])
236
- @oa.students_details_by_status(['applied','enrolled'])
237
- @oa.students_details_by_status(['applied','enrolled'], nil, [:parent_guardian])
238
- ```
239
-
240
-
241
- #### STUDENT DATA TRANFORMATIONS
242
-
243
- ```ruby
244
- # student details - in an array format (instead of hash)
245
- # ATTRIBUTES - status, flatten_keys, reject_keys, student_keys(into array), guardian_info(into array), payment_info(into array)
246
- # guardian and payment info options:
247
- # count - how many records to return
248
- # keys - which keys to return to array/csv
249
- # order: :newest/:oldest (for payments) - return newest or oldest payments first
250
- @oa.students_as_array_by_status('applied', nil, nil, [:id, :name], nil, {count: 2, order: :newest, keys: [:date, :amount]} )
251
- # all options
252
- @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]} )
253
- #
254
- # Create a csv string
255
- @oa.students_as_csv_by_status('applied', nil, nil, [:id, :name], nil, {count: 2, order: :newest, keys: [:date, :amount]} )
256
- # all options
257
- csv=@oa.students_as_csv_by_status('applied',[:custom_fields], [:parent_guardian], [:id, :name], {count: 1, keys: [:id, :name, :address]}, {count: 2, order: :newest, keys: [:date, :amount]} )
258
- #
259
- # send CSV to a remote server as a file - using ssh-keys
260
- # attributes: csv_string, srv_hostname, srv_username, srv_path_file, file_permissions(0750 - default if not specified)
261
- @oa.send_data_to_remote_server(csv, 'hostname.domain.name', 'myusername', '/home/myusername/xfer/myexport.csv', '0750')
262
- #
263
- # # Create a XLSX package
264
- @oa.students_as_xlsx_by_status('applied', nil, nil, [:id, :name], nil, {count: 2, order: :newest, keys: [:date, :amount]} )
265
- # # all options
266
- xlsx_obj=@oa.students_as_xlsx_by_status('applied',[:custom_fields], [:parent_guardian], [:id, :name], {count: 1, keys: [:id, :name, :address]}, {count: 2, order: :newest, keys: [:date, :amount]} )
267
- # #
268
- # # send CSV to a remote server as a file - using ssh-keys
269
- # # attributes: csv_string, srv_hostname, srv_username, srv_path_file, file_permissions(0750 - default if not specified)
270
- @oa.send_data_to_remote_server(xlsx_obj, 'hostname.domain.name', 'myusername', '/home/myusername/xfer/myexport.csv', '0750')
271
- ```
272
-
273
- #### CUSTOM GROUP QUERIES - summary data
274
-
275
- ```ruby
276
- # status = 'applied' # all records matching a valid openapply status
277
- # since_id = 95 # all records with ids after 95
278
- # since_date = '2017-11-12' # all records modified after 2017-11-12 (& time)
279
- # count = 20 # records per page
280
-
281
- # build a custom url query to send to OA api
282
- # returns a url that can be passed to api
283
- @oa.students_query_url('applied', 106, '2017-11-12', 25)
284
-
285
- # executes a custom query and returns a group of student summaries matching criteria
286
- @oa.students_query('applied', 106, '2017-11-12', 25)
93
+ # Individual student record
94
+ # (note: parent info is duplicated)
95
+ @oa.student_by_id( id )
96
+ @oa.payments_by_id( id )
97
+
98
+ # Student Details by IDs:
99
+ # id - student's record number
100
+ # options = {get_payments: false}
101
+ @oa.one_student_details_by_id( id, options={} )
102
+ # ids - in array format
103
+ @oa.many_students_details_by_ids( ids, options={} )
104
+
105
+ # Query many students by params:
106
+ # params = {status: 'applied', since_id: 95, since_date: '2018-01-20', count: 50}
107
+ @oa.many_students_ids( params )
108
+ @oa.many_ids_updated_time( params )
109
+ @oa.many_students_summaries( params )
110
+ @oa.many_students_details( params, options )
111
+
112
+ # directly call the OA API - with custom URL
113
+ @oa.oa_api_call('/api/v1/students/?status=accepted&count=5&auth_token=add_api_key')
287
114
  ```
288
115
 
289
-
290
116
  #### OpenApply's allowed statuses
291
117
 
292
118
  * **valid status includes:**
@@ -309,7 +135,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
309
135
 
310
136
  ## Contributing
311
137
 
312
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/openapply. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
138
+ Bug reports and pull requests are welcome on GitHub at https://github.com/btihen/btihen/openapply. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
313
139
 
314
140
  ## License
315
141
 
@@ -317,4 +143,4 @@ The gem is available as open source under the terms of the [MIT License](http://
317
143
 
318
144
  ## Code of Conduct
319
145
 
320
- Everyone interacting in the Openapply project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/openapply/blob/master/CODE_OF_CONDUCT.md).
146
+ Everyone interacting in the Openapply project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/btihen/openapply/blob/master/CODE_OF_CONDUCT.md).
@@ -1,12 +1,5 @@
1
-
2
- require "openapply/convert_to_array"
3
- # require "openapply/convert_to_xlsx"
4
- require "openapply/convert_to_csv"
5
- require "openapply/send_to_remote"
6
- require "openapply/get_students"
7
- require "openapply/get_student"
8
- # require "openapply/convert"
9
- # require "openapply/client"
1
+ require "openapply/get_many_students"
2
+ require "openapply/get_one_student"
10
3
  require "openapply/put"
11
4
  require 'httparty'
12
5
 
@@ -21,15 +14,6 @@ module Openapply
21
14
  include Put
22
15
  # GET api calls
23
16
  include Get
24
- # Convert student data to various formats
25
- include ConvertToArray
26
- # AXLSX files
27
- include ConvertToCsv
28
- # AXLSX files
29
- # include ConvertToXlsx
30
- # Send To Remote ssh
31
- include SendToRemote
32
-
33
17
  # Library for API calls to OpenApply
34
18
  include HTTParty
35
19
 
@@ -68,21 +52,17 @@ module Openapply
68
52
  ENV['OA_RECORD_COUNT'] || '50'
69
53
  end
70
54
 
71
- # Does the actual api call to OpenApply & handles API timeouts gracefully
72
- #
73
- # ==== Attributes
74
- # * +url+ - this is the url to do the call
75
- # /api/v1/students/95?auth_token=demo_site_api_key
76
- # is the url passed when wanting to do the following cli api call
77
- # curl http://demo.openapply.com/api/v1/students/95?auth_token=demo_site_api_key
78
- # * +options+ - see httparty options [http://www.rubydoc.info/github/jnunemaker/httparty]
55
+ # @note Does the actual api call to OpenApply & handles API timeouts gracefully
56
+ # @param url [String] - this is the url to do the call
57
+ # @param options - see httparty options [http://www.rubydoc.info/github/jnunemaker/httparty]
79
58
  def oa_api_call(url, options={})
80
59
  # https://stackoverflow.com/questions/26251422/handling-netreadtimeout-error-in-httparty
81
60
  max_retries = 3
82
61
  times_retried = 0
83
62
  begin
84
63
  self.class.get(url, options)
85
- rescue Net::ReadTimeout, Net::OpenTimeout => error
64
+ # rescue Net::ReadTimeout, Net::OpenTimeout => error
65
+ rescue Net::ReadTimeout, Net::OpenTimeout
86
66
  if times_retried < max_retries
87
67
  times_retried += 1
88
68
  # puts "TIMEOUT RETRY: #{times_retried} of #{max_retries} - USING: #{url.inspect}"
@@ -94,14 +74,9 @@ module Openapply
94
74
  end
95
75
  end
96
76
 
97
- # Does checks the info for validity & unpacks the json retubed to a JS formatt
98
- #
99
- # ==== Attributes
100
- # * +url+ - this is the url to do the call
101
- # /api/v1/students/95?auth_token=demo_site_api_key
102
- # is the url passed when wanting to do the following cli api call
103
- # curl http://demo.openapply.com/api/v1/students/95?auth_token=demo_site_api_key
104
- # * +options+ - see httparty options [http://www.rubydoc.info/github/jnunemaker/httparty]
77
+ # @note checks the info for validity & unpacks the json retubed to a JS formatt
78
+ # @param url [String] - this is the url to do the call
79
+ # @param options - see httparty options [http://www.rubydoc.info/github/jnunemaker/httparty]
105
80
  def oa_answer(url, options={})
106
81
  # puts
107
82
  # puts "GIVEN URL: #{ url.inspect }"
@@ -109,8 +84,8 @@ module Openapply
109
84
  return { error: 'bad url - has space' } if url.include? " "
110
85
  return { error: 'bad api_path' } unless url.include? "#{api_path}"
111
86
  return { error: 'bad auth_token' } unless url.include? "auth_token=#{api_key}"
112
- api_answer = nil
113
87
 
88
+ # api_answer = nil
114
89
  api_answer = oa_api_call(url, options)
115
90
 
116
91
  return api_answer unless api_answer.respond_to? "response" # and not api_answer[:error].nil?
@@ -119,8 +94,7 @@ module Openapply
119
94
  return { error: 'no response' } if api_answer.response.to_s.eql? ""
120
95
  return JSON.parse(api_answer.response.body, symbolize_names: true)
121
96
  end
122
- # alias_method :openapply_answer, :oa_answer
123
97
 
124
- end # Client
98
+ end
125
99
 
126
- end # Openapply
100
+ end