Class: Blackbaud::Client
- Inherits:
-
Object
- Object
- Blackbaud::Client
- Defined in:
- lib/blackbaud-client.rb,
lib/blackbaud-client/version.rb
Defined Under Namespace
Classes: Version
Constant Summary collapse
- VERSION =
Version::STRING
Instance Attribute Summary collapse
-
#connector ⇒ Object
Returns the value of attribute connector.
Instance Method Summary collapse
- #get_academic_year_marking_columns(year_id) ⇒ Object
- #get_academic_years(id) ⇒ Object (also: #academic_years)
- #get_attendance_by_class(ea7_class_id, start_date, end_date = nil) ⇒ Object (also: #attendance_by_class)
- #get_attendance_by_day(ea7_class_id, start_date, end_date = nil) ⇒ Object (also: #attendance_by_day)
- #get_attendance_codes ⇒ Object (also: #attendance_codes)
- #get_class(id) ⇒ Object (also: #class)
- #get_class_marking_columns(class_id) ⇒ Object (also: #class_marking_columns)
- #get_classes(scope) ⇒ Object (also: #classes)
- #get_code_table_entries(code_table) ⇒ Object (also: #code_table_entries)
- #get_code_tables ⇒ Object (also: #code_tables)
- #get_contact_types ⇒ Object (also: #contact_types)
- #get_faweb_grades(class_id, marking_column_id) ⇒ Object (also: #faweb_grades)
- #get_grades(class_id, marking_column_id) ⇒ Object (also: #grades)
-
#get_people(scope, filter_opts = {}) ⇒ Object
(also: #people)
Return an Array of Person records.
- #get_person(id, filter_opts = {}) ⇒ Object (also: #person)
- #get_relationships ⇒ Object (also: #relationships)
- #get_session_marking_columns(session_id) ⇒ Object
- #get_static_code_tables(id) ⇒ Object (also: #static_code_tables)
- #get_token(auth_params) ⇒ Object
- #get_translation_tables(id = nil) ⇒ Object (also: #translation_tables)
-
#initialize(options) ⇒ Client
constructor
A new instance of Client.
- #post_grades(grades) ⇒ Object
Constructor Details
#initialize(options) ⇒ Client
Returns a new instance of Client.
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/blackbaud-client.rb', line 32 def initialize() @connector = Blackbaud::Connector.new([:url], [:save_request_data_to]) auth_params = { :database_key => [:database_key], :database_number => [:database_number], :vendor_id => [:vendor_id], :vendor_key => [:vendor_key] }.to_json @connector.token = get_token(auth_params) end |
Instance Attribute Details
#connector ⇒ Object
Returns the value of attribute connector.
31 32 33 |
# File 'lib/blackbaud-client.rb', line 31 def connector @connector end |
Instance Method Details
#get_academic_year_marking_columns(year_id) ⇒ Object
134 135 136 137 |
# File 'lib/blackbaud-client.rb', line 134 def get_academic_year_marking_columns(year_id) results = @connector.get("configuration/academic_years/#{year_id}/marking_columns") create_blackbaud_objects(Blackbaud::Session, results["sessions"]) end |
#get_academic_years(id) ⇒ Object Also known as: academic_years
48 49 50 51 |
# File 'lib/blackbaud-client.rb', line 48 def get_academic_years(id) results = @connector.get("schedule/#{id}/academic_years") create_blackbaud_objects(Blackbaud::AcademicYear, results["academic_years"]) end |
#get_attendance_by_class(ea7_class_id, start_date, end_date = nil) ⇒ Object Also known as: attendance_by_class
124 125 126 127 |
# File 'lib/blackbaud-client.rb', line 124 def get_attendance_by_class(ea7_class_id, start_date, end_date = nil) results = @connector.get("attendance/class/#{ea7_class_id}/#{format_date(start_date)}/#{format_date(end_date)}") create_blackbaud_objects(Blackbaud::AttendanceByClassRecord, results["attendance_by_class_records"]) end |
#get_attendance_by_day(ea7_class_id, start_date, end_date = nil) ⇒ Object Also known as: attendance_by_day
129 130 131 132 |
# File 'lib/blackbaud-client.rb', line 129 def get_attendance_by_day(ea7_class_id, start_date, end_date = nil) results = @connector.get("attendance/day/#{ea7_class_id}/#{start_date}/#{end_date}") create_blackbaud_objects(Blackbaud::AttendanceByDayRecord, results["attendance_by_day_records"]) end |
#get_attendance_codes ⇒ Object Also known as: attendance_codes
119 120 121 122 |
# File 'lib/blackbaud-client.rb', line 119 def get_attendance_codes results = @connector.get("attendance/codes") create_blackbaud_objects(Blackbaud::AttendanceCode, results["attendance_codes"]) end |
#get_class(id) ⇒ Object Also known as: class
99 100 101 102 |
# File 'lib/blackbaud-client.rb', line 99 def get_class(id) results = @connector.get("schedule/classes/#{id}") create_blackbaud_object(Blackbaud::BlackbaudClass, results["classes"].first) end |
#get_class_marking_columns(class_id) ⇒ Object Also known as: class_marking_columns
144 145 146 147 148 |
# File 'lib/blackbaud-client.rb', line 144 def get_class_marking_columns(class_id) results = @connector.get("grade/classes/#{class_id}/marking_columns") results["class_marking_columns"].each{|column| column["ea7_class_id"] = class_id} create_blackbaud_objects(Blackbaud::MarkingColumn, results["class_marking_columns"]) end |
#get_classes(scope) ⇒ Object Also known as: classes
94 95 96 97 |
# File 'lib/blackbaud-client.rb', line 94 def get_classes(scope) results = @connector.get("schedule/#{scope.connection_string}/classes") create_blackbaud_objects(Blackbaud::BlackbaudClass, results["classes"]) end |
#get_code_table_entries(code_table) ⇒ Object Also known as: code_table_entries
109 110 111 112 |
# File 'lib/blackbaud-client.rb', line 109 def get_code_table_entries(code_table) results = @connector.get("global/code_tables/#{code_table.id}") create_blackbaud_objects(Blackbaud::CodeTableEntry, results["table_entries"]) end |
#get_code_tables ⇒ Object Also known as: code_tables
104 105 106 107 |
# File 'lib/blackbaud-client.rb', line 104 def get_code_tables results = @connector.get("global/code_tables") create_blackbaud_objects(Blackbaud::CodeTable, results["code_tables"]) end |
#get_contact_types ⇒ Object Also known as: contact_types
53 54 55 56 |
# File 'lib/blackbaud-client.rb', line 53 def get_contact_types results = @connector.get("global/code_tables/phone%20type") create_blackbaud_objects(Blackbaud::CodeTableEntry, results["table_entries"]) end |
#get_faweb_grades(class_id, marking_column_id) ⇒ Object Also known as: faweb_grades
155 156 157 158 |
# File 'lib/blackbaud-client.rb', line 155 def get_faweb_grades(class_id, marking_column_id) results = @connector.get("faweb_grade/classes/#{class_id}/marking_columns/#{marking_column_id}/grades") create_blackbaud_objects(Blackbaud::Grade, results["faweb_grades"]) end |
#get_grades(class_id, marking_column_id) ⇒ Object Also known as: grades
150 151 152 153 |
# File 'lib/blackbaud-client.rb', line 150 def get_grades(class_id, marking_column_id) results = @connector.get("grade/classes/#{class_id}/marking_columns/#{marking_column_id}/grades") create_blackbaud_objects(Blackbaud::Grade, results["grades"]) end |
#get_people(scope, filter_opts = {}) ⇒ Object Also known as: people
Return an Array of Person records
Available filter_opts:
-
:contact_types: An Array of id values that correspond to code_table table_entry records from the “phone type” code_table
-
:relationships: An Array of id values that correspond to code_table table_entry records from the “relationship” code_table
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/blackbaud-client.rb', line 76 def get_people(scope, filter_opts={}) filters = {} filters["contact.type_id"] = filter_opts[:contact_types] filters["relation.relationship_code_id"] = filter_opts[:relationships] results = @connector.get("person/#{scope.connection_string}/people", filters)["people"].first { 'faculty' => Blackbaud::Person::USER_TYPE[:faculty], 'students' => Blackbaud::Person::USER_TYPE[:student], }.each do |response_key, type_id| if results[response_key].is_a?(Enumerable) results[response_key].each{|person| person['type'] = type_id} end end create_blackbaud_objects(Blackbaud::Person, results['faculty'].to_a + results['students'].to_a) end |
#get_person(id, filter_opts = {}) ⇒ Object Also known as: person
63 64 65 66 67 68 69 |
# File 'lib/blackbaud-client.rb', line 63 def get_person(id, filter_opts={}) filters = {} filters["contact.type_id"] = filter_opts[:contact_types] filters["relation.relationship_code_id"] = filter_opts[:relationships] results = @connector.get("person/people/#{id}", filters) create_blackbaud_object(Blackbaud::Person, results["people"].first) end |
#get_relationships ⇒ Object Also known as: relationships
58 59 60 61 |
# File 'lib/blackbaud-client.rb', line 58 def get_relationships results = @connector.get("global/code_tables/relationship") create_blackbaud_objects(Blackbaud::CodeTableEntry, results["table_entries"]) end |
#get_session_marking_columns(session_id) ⇒ Object
139 140 141 142 |
# File 'lib/blackbaud-client.rb', line 139 def get_session_marking_columns(session_id) results = @connector.get("configuration/sessions/#{session_id}/marking_columns") create_blackbaud_objects(Blackbaud::MarkingColumn, results["marking_columns"]) end |
#get_static_code_tables(id) ⇒ Object Also known as: static_code_tables
114 115 116 117 |
# File 'lib/blackbaud-client.rb', line 114 def get_static_code_tables(id) results = @connector.get("global/static_code_tables/#{id}") create_blackbaud_objects(Blackbaud::CodeTableEntry, results["table_entries"]) end |
#get_token(auth_params) ⇒ Object
43 44 45 46 |
# File 'lib/blackbaud-client.rb', line 43 def get_token(auth_params) results = @connector.post('/security/access_token', auth_params) results["token"] end |
#get_translation_tables(id = nil) ⇒ Object Also known as: translation_tables
160 161 162 163 |
# File 'lib/blackbaud-client.rb', line 160 def get_translation_tables(id=nil) results = @connector.get("grade/translation_tables/#{id}") create_blackbaud_objects(Blackbaud::TranslationTable, results["translation_tables"]) end |
#post_grades(grades) ⇒ Object
165 166 167 168 |
# File 'lib/blackbaud-client.rb', line 165 def post_grades(grades) results = @connector.post('/grade/class', format_grades(grades)) create_blackbaud_objects(Blackbaud::Grade, results["grades"]) end |