aTei
@aTei

Как правильно избавиться от дублирования?

Понимаю, что дублирование это очень плохо. Но совсем нет идей, как от него здесь избавиться.
Любые действия с follow и unfollow создают почти идентичный код.
Какой подход использовать? В какую сторону глядеть?
class UserFollows

  constructor: (@container) ->
    @user_id = @container.data 'user-id'
    @get_follow_status()
    @container.find('.follow-link').on 'click', @follow
    @container.find('.unfollow-link').on 'click', @unfollow

  get_follow_status: ->
    $.post "/u/#{@user_id}/already_following", (data) ->
      if data == 'yes'
        @set_unfollow()
      else
        @set_follow()

  follow: (e) =>
    e.preventDefault()
    $.post "/u/#{@user_id}/follow", ->
      @set_follow()

  unfollow: (e) =>
    e.preventDefault()
    $.post "/u/#{@user_id}/unfollow", ->
      @set_unfollow()


  set_follow: ->
    @container.removeClass 'follow-container_unfollow'
    @container.addClass 'follow-container_follow'


  set_unfollow: ->
    @container.removeClass 'follow-container_follow'
    @container.addClass 'follow-container_unfollow'
  • Вопрос задан
  • 2480 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы