module Mobile
  module Entities
    class Member < Grape::Entity
      include ApplicationHelper
      include ApiHelper
      def self.member_expose(f)
        expose f do |u,opt|
          if u.is_a?(Hash) && u.key?(f)
            u[f]
          elsif u.is_a?(::Member)
            if u.respond_to?(f)
              u.send(f)
            else
              case f
               when :student_id
                u.user.user_extensions.student_id
              end
            end
          end

        end
      end

      expose :user, using: Mobile::Entities::User do |c, opt|
        if c.is_a?(::Member)
          c.user
        end
      end
      member_expose :student_id
      member_expose :score
      member_expose :id
    end
  end
end