module CardController::Rest
RESTful action methods for card
Public Instance Methods
asset()
click to toggle source
@deprecated
# File lib/card_controller/rest.rb, line 26 def asset body = "Decko installation error: missing public directory symlinks" Rails.logger.info "#{body}.\n >>> Try `rake card:mod:symlink`" render body: body, status: 404 end
create()
click to toggle source
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PUBLIC METHODS
# File lib/card_controller/rest.rb, line 9 def create handle { card.save! } end
delete()
click to toggle source
# File lib/card_controller/rest.rb, line 21 def delete handle { card.delete! } end
read()
click to toggle source
# File lib/card_controller/rest.rb, line 13 def read show end
update()
click to toggle source
# File lib/card_controller/rest.rb, line 17 def update card.new_card? ? create : handle { card.update! params[:card]&.to_unsafe_h } end
Private Instance Methods
authenticate()
click to toggle source
# File lib/card_controller/rest.rb, line 43 def authenticate Card::Auth.signin_with(**authenticators) end
authenticators()
click to toggle source
# File lib/card_controller/rest.rb, line 47 def authenticators { token: token_from_header || params[:token] } end
cud_success()
click to toggle source
successful create, update, or delete act
# File lib/card_controller/rest.rb, line 86 def cud_success success = Card::Env.success.in_context card.name if success.reload? reload # instruct JSON to reload else redirect_cud_success success end end
handle() { |? cud_success : raise(UserError)| ... }
click to toggle source
———-( HELPER METHODS ) ————-
# File lib/card_controller/rest.rb, line 80 def handle Card::Env.success card.name yield ? cud_success : raise(Card::Error::UserError) end
load_action()
click to toggle source
# File lib/card_controller/rest.rb, line 62 def load_action card.select_action_by_params params return unless params[:edit_draft] && card.drafts.present? card.content = card.last_draft_content end
load_card()
click to toggle source
# File lib/card_controller/rest.rb, line 55 def load_card @card = Card.uri_fetch params raise Card::Error::NotFound unless card record_as_main end
record_as_main()
click to toggle source
TODO: refactor this away this when new layout handling is ready
# File lib/card_controller/rest.rb, line 70 def record_as_main Card::Env[:main_name] = params[:main] || card&.name || "" end
refresh_card()
click to toggle source
# File lib/card_controller/rest.rb, line 74 def refresh_card @card = card.refresh end
render_page(format, view)
click to toggle source
# File lib/card_controller/rest.rb, line 103 def render_page format, view view ||= view_from_params card.act do format.page self, view, Card::Env.slot_opts end end
setup()
click to toggle source
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PRIVATE METHODS
# File lib/card_controller/rest.rb, line 37 def setup Card::Machine.refresh_assets unless params[:explicit_file] Card::Cache.renew Card::Env.reset controller: self end
show(view=nil, status=200)
click to toggle source
# File lib/card_controller/rest.rb, line 95 def show view=nil, status=200 card.action = :read format = load_format status result = render_page format, view status = format.error_status || status respond format, result, status end
token_from_header()
click to toggle source
# File lib/card_controller/rest.rb, line 51 def token_from_header token_and_options(request)&.first end
view_from_params()
click to toggle source
# File lib/card_controller/rest.rb, line 110 def view_from_params %i[view v].each { |k| return params[k] if params[k].present? } nil end