lib/osm/api.rb in osm-0.0.6 vs lib/osm/api.rb in osm-0.0.7

- old
+ new

@@ -250,11 +250,11 @@ # Get the programme for a given term # @param [FixNum] section_id the section to get the programme for # @param [FixNum] term_id the term to get the programme for # @!macro options_get # @!macro options_api_data - # @return [Array<Osm::ProgrammeItem>] + # @return [Array<Osm::Evening>] def get_programme(section_id, term_id, options={}, api_data={}) if !options[:no_cache] && Rails.cache.exist?("OSMAPI-programme-#{section_id}-#{term_id}") && self.user_can_access?(:programme, section_id, api_data) return Rails.cache.read("OSMAPI-programme-#{section_id}-#{term_id}") end @@ -265,13 +265,13 @@ self.user_can_access(:programme, section_id, api_data) unless data.is_a? Array items = data['items'] || [] activities = data['activities'] || {} items.each do |item| - programme_item = Osm::ProgrammeItem.new(item, activities[item['eveningid']]) - result.push programme_item - programme_item.activities.each do |activity| + evening = Osm::Evening.new(item, activities[item['eveningid']]) + result.push evening + evening.activities.each do |activity| self.user_can_access :activity, activity.activity_id, api_data end end Rails.cache.write("OSMAPI-programme-#{section_id}-#{term_id}", result, :expires_in => @@default_cache_ttl) @@ -493,28 +493,14 @@ return data.is_a?(Hash) && (data['result'] == 0) end # Update an evening in OSM - # @param [Osm::ProgrammeItem] programme_item is the Osm::ProgrammeItem object to update + # @param [Osm::Evening] evening the evening to update # @!macro options_api_data # @return [Boolean] if the operation suceeded or not - def update_evening(programme_item, api_data={}) - response = perform_query("programme.php?action=editEvening", api_data.merge({ - 'eveningid' => programme_item.evening_id, - 'sectionid' => programme_item.section_id, - 'meetingdate' => programme_item.meeting_date.try(:strftime, '%Y-%m-%d'), - 'starttime' => programme_item.start_time, - 'endtime' => programme_item.end_time, - 'title' => programme_item.title, - 'notesforparents' => programme_item.notes_for_parents, - 'prenotes' => programme_item.pre_notes, - 'postnotes' => programme_item.post_notes, - 'games' => programme_item.games, - 'leaders' => programme_item.leaders, - 'activity' => programme_item.activities_for_saving, - 'googlecalendar' => programme_item.google_calendar || '', - })) + def update_evening(evening, api_data={}) + response = perform_query("programme.php?action=editEvening", api_data.merge(evening.data_for_saving)) # The cached programmes for the section will be out of date - remove them get_terms(api_data).each do |term| Rails.cache.delete("OSMAPI-programme-#{term.section_id}-#{term.id}") if term.section_id == programme_item.section_id end