class MobileAppApi::V1::GroupController < MobileAppApi::V1::BaseController

  before_filter :login_required!

  # Api to get all groups of the current user
  def get_all_groups
    params[:per_page] ||= 5
    groups = @user.groups
    unless groups.blank?
      fixxperts = groups.map {|group| {group.id => group.fixxperts.except_user(@user).page(params[:page]).per(params[:per_page]).map(&:info)}}
      customers = groups.map {|group| {group.id => group.customers.except_user(@user).page(params[:page]).per(params[:per_page]).map(&:info)}}
      friends = groups.map {|group| {group.id => group.users.except_user(@user).page(params[:page]).per(params[:per_page]).where(id: @user.common_friends).map(&:info)}}
      render json: {status: 200, groups: groups, fixxperts: fixxperts, peers: customers, friends: friends}
    else
      render json: {status: 400, error: "No Group Present"}
    end
  end

  # Get group by its Id for current user.
  def get_group
    params[:per_page] ||= 5
    if params[:group_id]
      group = Group.find(params[:group_id])
      unless group.blank?
        fixxperts = group.fixxperts.except_user(@user).page(params[:page]).per(params[:per_page]).map(&:info)
        customers = group.customers.except_user(@user).page(params[:page]).per(params[:per_page]).map(&:info)
        friends = group.users.except_user(@user).page(params[:page]).per(params[:per_page]).where(id: @user.common_friends).map(&:info)
        render json: {status: 200, group: group, fixxperts: fixxperts, peers: customers, friends: friends}
        end
    else
      render json: {status: 400, error: "Please provide valid group id"}
    end
  end

  # Find the group with Id and get all its group members.
  def get_group_members
    params[:per_page] ||= 5
    if params[:group_id]
      group = Group.find(params[:group_id])
      unless group.blank?
        if params[:type] == "'fixxperts'"
          group_members = group.fixxperts.except_user(@user).page(params[:page]).per(params[:per_page]).map(&:info)
        elsif params[:type] == "'customers'"
          group_members = group.customers.except_user(@user).page(params[:page]).per(params[:per_page]).map(&:info)
        elsif params[:type] == "'friends'"
          group_members = group.users.except_user(@user).page(params[:page]).per(params[:per_page]).where(id: @user.direct_friends).map(&:info)
        else
          group_members = group.users.except_user(@user).page(params[:page]).per(params[:per_page]).map(&:info)
        end
        render json: {status: 200, group_members: group_members}
      end
    else
      render json: {status: 400, error: "Please provide valid group id"}
    end
  end

end
