Class: AsanaController

Inherits:
ApplicationController show all
Defined in:
app/controllers/asana_controller.rb

Overview

Asana import (card #7). First visit is a connect wizard (PAT walkthrough); once connected it's a one-field modal: paste the task URL, get a card.

Instance Method Summary collapse

Instance Method Details

#connectObject



12
13
14
15
16
17
18
# File 'app/controllers/asana_controller.rb', line 12

def connect
  name = Asana.verify!(params.require(:token))
  Asana.save_token!(params[:token])
  redirect_to asana_new_card_path(connected: name)
rescue Asana::Error => e
  redirect_to asana_new_card_path(error: e.message)
end

#disconnectObject



27
28
29
30
# File 'app/controllers/asana_controller.rb', line 27

def disconnect
  Asana.disconnect!
  redirect_to asana_new_card_path
end

#importObject



20
21
22
23
24
25
# File 'app/controllers/asana_controller.rb', line 20

def import
  card = Asana.import!(Board.first!, params.require(:url))
  redirect_to card_path(card)
rescue Asana::Error => e
  redirect_to asana_new_card_path(error: e.message)
end

#new_cardObject



4
5
6
7
8
9
10
# File 'app/controllers/asana_controller.rb', line 4

def new_card
  @board = Board.first!
  redirect_to root_path and return unless turbo_frame_request?
  @connected = Asana.connected?
  @error = params[:error]
  @just_connected = params[:connected]
end