class Friendship < ActiveRecord::Base
  .
  .
  .
  # Akceptacja propozycji znajomoci
  def self.accept(user, friend)
    transaction do
      accepted_at = Time.now
      accept_one_side(user, friend, accepted_at)
      accept_one_side(friend, user, accepted_at)
    end
  end

  # Usuwa znajomo lub anuluje oczekujc propozycj
  def self.breakup(user, friend)
    transaction do
      destroy(find_by_user_id_and_friend_id(user, friend))
      destroy(find_by_user_id_and_friend_id(friend, user))
    end
  end

private
  # Aktualizuje baz danych, wpisujc jedn stron zaakceptowanej propozycji znajomoci
  def self.accept_one_side(user, friend, accepted_at)
    request = find_by_user_id_and_friend_id(user, friend)
    request.status = 'accepted'
    request.accepted_at = accepted_at
    request.save!
  end

