lib/osm/member.rb in osm-0.1.8 vs lib/osm/member.rb in osm-0.1.9
- old
+ new
@@ -146,23 +146,24 @@
# @param [Osm::Section, Fixnum] section the section (or its ID) to get the members for
# @param [Osm::Term, Fixnum, nil] term the term (or its ID) to get the members for, passing nil causes the current term to be used
# @!macro options_get
# @return [Array<Osm::Member>]
def self.get_for_section(api, section, term=nil, options={})
+ section = Osm::Section.get(api, section) if section.is_a?(Fixnum)
+ term = -1 if section.waiting?
term_id = term.nil? ? Osm::Term.get_current_term_for_section(api, section).id : term.to_i
- section_id = section.to_i
- cache_key = ['members', section_id, term_id]
+ cache_key = ['members', section.id, term_id]
- if !options[:no_cache] && cache_exist?(api, cache_key) && get_user_permission(api, section_id, :member).include?(:read)
+ if !options[:no_cache] && cache_exist?(api, cache_key) && get_user_permission(api, section.id, :member).include?(:read)
return cache_read(api, cache_key)
end
- data = api.perform_query("users.php?action=getUserDetails§ionid=#{section_id}&termid=#{term_id}")
+ data = api.perform_query("users.php?action=getUserDetails§ionid=#{section.id}&termid=#{term_id}")
result = Array.new
data['items'].each do |item|
result.push Osm::Member.new(
- :section_id => section_id,
+ :section_id => section.id,
:id => Osm::to_i_or_nil(item['scoutid']),
:type => item['type'],
:first_name => item['firstname'],
:last_name => item['lastname'],
:email1 => item['email1'],