Merge pull request 'Configure letter opener to read emails via web UI' (#150) from letter-opener into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 38s
Run unit tests / unit_tests (push) Has been cancelled
Build Nginx-based docker image / build-static-assets (push) Has been cancelled

Reviewed-on: #150
This commit is contained in:
bustikiller 2024-11-30 18:17:46 +00:00
commit 06f8039f40
8 changed files with 34 additions and 5 deletions

View File

@ -35,6 +35,7 @@ end
group :development do
gem 'rubocop'
gem 'web-console'
gem 'letter_opener_web'
end
gem 'chroma'

View File

@ -88,6 +88,8 @@ GEM
bootsnap (1.18.4)
msgpack (~> 1.2)
builder (3.3.0)
childprocess (5.1.0)
logger (~> 1.5)
chroma (0.2.0)
coderay (1.1.3)
concurrent-ruby (1.3.4)
@ -150,6 +152,16 @@ GEM
jsonapi-serializable (0.3.1)
jsonapi-renderer (~> 0.2.0)
language_server-protocol (3.17.0.3)
launchy (3.0.1)
addressable (~> 2.8)
childprocess (~> 5.0)
letter_opener (1.10.0)
launchy (>= 2.2, < 4)
letter_opener_web (3.0.0)
actionmailer (>= 6.1)
letter_opener (~> 1.9)
railties (>= 6.1)
rexml
license_finder (7.2.1)
bundler
csv (~> 3.2)
@ -386,6 +398,7 @@ DEPENDENCIES
importmap-rails
jbuilder
jsonapi-rails
letter_opener_web
license_finder
money
pg (~> 1.1)

View File

@ -59,6 +59,10 @@ The backend, frontend and workers have hot-reloading enabled, so changes made to
Once all containers have started, visit http://libre-wedding-planner.app.localhost/dashboard to load the application.
## Email delivery
In the development environment, real emails will not be sent. You can visit http://libre-wedding-planner.app.localhost/letter_opener/ to get a list of emails generated by the application.
## Testing
Unit tests can be executed with

View File

@ -31,7 +31,7 @@ class ApplicationController < ActionController::Base
def development_swagger?
Rails.env.test? ||
Rails.env.development? && request.headers['referer'].include?('/api-docs/index.html')
Rails.env.development? && request.headers['referer']&.include?('/api-docs/index.html')
end
def set_csrf_cookie

View File

@ -7,7 +7,10 @@ class Users::ConfirmationsController < Devise::ConfirmationsController
def show
super do |resource|
if resource.errors.empty?
render json: resource, status: :ok
respond_to do |format|
format.json { render json: resource, status: :ok }
format.any { redirect_to root_path }
end
else
render json: {
message: 'Record invalid',

View File

@ -40,10 +40,10 @@ Rails.application.configure do
# Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = false
config.action_mailer.perform_caching = false
config.action_mailer.default_url_options = { host: 'libre-wedding-planner.app.localhost' }
config.action_mailer.default_url_options = { host: 'libre-wedding-planner.app.localhost/api' }
config.action_mailer.delivery_method = :letter_opener_web
config.action_mailer.perform_deliveries = true
# Print deprecation notices to the Rails logger.
config.active_support.deprecation = :log

View File

@ -1,6 +1,7 @@
# Copyright (C) 2024 Manuel Bustillo
Rails.application.routes.draw do
mount LetterOpenerWeb::Engine, at: "/letter_opener" if Rails.env.development?
devise_for :users, skip: [:registration, :session, :confirmation]
devise_scope :user do
post 'users', to: 'users/registrations#create'
@ -23,4 +24,6 @@ Rails.application.routes.draw do
resources :tables_arrangements, only: %i[index show]
get 'up' => 'rails/health#show', as: :rails_health_check
root to: redirect('/dashboard')
end

View File

@ -7,6 +7,11 @@ server {
proxy_set_header Host $http_host;
}
location /letter_opener/ {
proxy_pass http://backend:3000/letter_opener/;
proxy_set_header Host $http_host;
}
location / {
proxy_pass http://frontend:3000;
proxy_set_header Host $http_host;