* Upgrade Rails to 6.1 * Switch to unreleased bullet * Run rails app:update * Add deprecation notices after reading changelogs * Fix app:update error * Move middleware in the correct place * Temporarily disable ransack which does not support Rails 6.1 * Remove wrongly merged file * Re-run spring binstub * Fix double quotes * Track ransack branch with Rails 6.1 support * Fix deprecation * Switch to Ransack 2.4 which supports Rails 6.1 rc1 * Fix missing default params for the duration substitution * Fix new behavior of relation.pluck with contradictory queries * Fix uploaders specs by tracking rspec-rails main repo * Disable bullet temporarily * Fix remaining fixture_file_upload usages * Add default seconds for video article duration * Trigger Travis CI * Upgrade Rails to 6.1.0.rc2 * Remove file deleted on master * Add Rails 6.1 gem to Gemfile * Trigger Travis CI * Revert "Disable bullet temporarily" This reverts commit cee0c2ce61fb72cbc16d52c94b12ee681e873031. * Fix bullet version * Upgrade to acts-as-taggable 7 and fix conflict * Update Gemfile and rspec-* gems * Fix nokogiri in Gemfile.lock * Switch to rspec-rails main branch * Remove leftover vendored cached items * Fix path for Rails 6.1 * Use latest release of erb_lint * Re-run rails app:update to incorporate new changes * Disable erb_lint's ErbSafety checks * Fix Gemfile.lock and re-add platform specific gems of Nokogiri * Add mini_portile2 as well * Fix latest merge conflict by removing now unused faraday_middleware * Upgrade to Rails 6.1.3.1 * Regenerate Gemfile.lock and vendor/cache * Add x86_64 linux gem * Mark spec as flaky * Revert "Mark spec as flaky" This reverts commit 3caba94b33645f9b59c84ba78ee8df042fc7aee0. Co-authored-by: Mac Siri <krairit.siri@gmail.com>
28 lines
1.1 KiB
Ruby
28 lines
1.1 KiB
Ruby
# Be sure to restart your server when you modify this file.
|
|
|
|
# Avoid CORS issues when API is called from the frontend app.
|
|
# Handle Cross-Origin Resource Sharing (CORS) in order to accept cross-origin AJAX requests.
|
|
|
|
# Read more: https://github.com/cyu/rack-cors
|
|
|
|
# Enable CORS for API v0 (logging is only activated when debug is enabled)
|
|
Rails.application.config.middleware.insert_before(
|
|
0,
|
|
Rack::Cors,
|
|
debug: ENV["DEBUG_CORS"].present?,
|
|
logger: (-> { Rails.logger }),
|
|
) do
|
|
allow do
|
|
origins do |source, _env|
|
|
source # echo back the client's `Origin` header instead of using `*`
|
|
end
|
|
|
|
# allowed public APIs
|
|
%w[articles comments listings podcast_episodes tags users videos].each do |resource_name|
|
|
# allow read operations, disallow custom headers (eg. api-key) and enable preflight caching
|
|
# NOTE: Chrome caps preflight caching at 2 hours, Firefox at 24 hours
|
|
# see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age#Directives
|
|
resource "/api/#{resource_name}/*", methods: %i[head get options], headers: [], max_age: 2.hours.to_i
|
|
end
|
|
end
|
|
end
|