Skip to content
Extraits de code Groupes Projets
querying.rb 1,74 ko
Newer Older
  • Learn to ignore specific revisions
  • Raphael's avatar
    Raphael a validé
    #   Copyright (c) 2010, Diaspora Inc.  This file is
    
    Raphael's avatar
    Raphael a validé
    #   licensed under the Affero General Public License version 3.  See
    #   the COPYRIGHT file.
    
    module Diaspora
      module UserModules
        module Querying
    
    
          def find_visible_post_by_id( id )
            self.raw_visible_posts.find id
    
          end
    
          def visible_posts( opts = {} )
            if opts[:by_members_of]
              return raw_visible_posts if opts[:by_members_of] == :all
    
    Raphael's avatar
    Raphael a validé
              aspect = self.aspects.find_by_id( opts[:by_members_of].id )
              aspect.posts
    
            elsif opts[:from]
              self.raw_visible_posts.find_all_by_person_id(opts[:from].id, :order => 'created_at DESC')
    
            end
          end
    
          def visible_person_by_id( id )
            id = id.to_id
            return self.person if id == self.person.id
            result = friends.detect{|x| x.id == id }
            result = visible_people.detect{|x| x.id == id } unless result
            result
          end
    
    
    Raphael's avatar
    Raphael a validé
          def aspect_by_id( id )
    
            id = id.to_id
            aspects.detect{|x| x.id == id }
    
          end
    
          def album_by_id( id )
            id = id.to_id
            albums.detect{|x| x.id == id }
          end
    
    
    Raphael's avatar
    Raphael a validé
          def aspects_with_post( id )
            self.aspects.find_all_by_post_ids( id.to_id )
    
    Raphael's avatar
    Raphael a validé
          def aspects_with_person person
    
    Raphael's avatar
    Raphael a validé
            aspects.select { |g| g.person_ids.include? id}
    
    Raphael's avatar
    Raphael a validé
          def people_in_aspects aspects
    
    Raphael's avatar
    Raphael a validé
            aspects.each{ |aspect|
              people = people | aspect.people
    
    Raphael's avatar
    Raphael a validé
          def all_aspect_ids
            self.aspects.all.collect{|x| x.id}
    
    
          def albums_by_aspect aspect
    
            aspect == :all ? raw_visible_posts.find_all_by__type("Album") : aspect.posts.find_all_by__type("Album")