Browse Source

Init commit

Lou 3 years ago
commit
9a56573292
56 changed files with 1014 additions and 0 deletions
  1. 47
    0
      Gemfile
  2. 175
    0
      Gemfile.lock
  3. 24
    0
      README.md
  4. 6
    0
      Rakefile
  5. 4
    0
      app/channels/application_cable/channel.rb
  6. 4
    0
      app/channels/application_cable/connection.rb
  7. 2
    0
      app/controllers/application_controller.rb
  8. 0
    0
      app/controllers/concerns/.keep
  9. 7
    0
      app/jobs/application_job.rb
  10. 4
    0
      app/mailers/application_mailer.rb
  11. 3
    0
      app/models/application_record.rb
  12. 0
    0
      app/models/concerns/.keep
  13. 13
    0
      app/views/layouts/mailer.html.erb
  14. 1
    0
      app/views/layouts/mailer.text.erb
  15. 114
    0
      bin/bundle
  16. 5
    0
      bin/rails
  17. 5
    0
      bin/rake
  18. 33
    0
      bin/setup
  19. 14
    0
      bin/spring
  20. 6
    0
      config.ru
  21. 40
    0
      config/application.rb
  22. 4
    0
      config/boot.rb
  23. 10
    0
      config/cable.yml
  24. 1
    0
      config/credentials.yml.enc
  25. 25
    0
      config/database.yml
  26. 5
    0
      config/environment.rb
  27. 66
    0
      config/environments/development.rb
  28. 113
    0
      config/environments/production.rb
  29. 60
    0
      config/environments/test.rb
  30. 8
    0
      config/initializers/application_controller_renderer.rb
  31. 8
    0
      config/initializers/backtrace_silencers.rb
  32. 16
    0
      config/initializers/cors.rb
  33. 6
    0
      config/initializers/filter_parameter_logging.rb
  34. 16
    0
      config/initializers/inflections.rb
  35. 4
    0
      config/initializers/mime_types.rb
  36. 14
    0
      config/initializers/wrap_parameters.rb
  37. 33
    0
      config/locales/en.yml
  38. 43
    0
      config/puma.rb
  39. 3
    0
      config/routes.rb
  40. 6
    0
      config/spring.rb
  41. 34
    0
      config/storage.yml
  42. 7
    0
      db/seeds.rb
  43. 0
    0
      lib/tasks/.keep
  44. 0
    0
      log/.keep
  45. 1
    0
      public/robots.txt
  46. 0
    0
      storage/.keep
  47. 11
    0
      test/channels/application_cable/connection_test.rb
  48. 0
    0
      test/controllers/.keep
  49. 0
    0
      test/fixtures/files/.keep
  50. 0
    0
      test/integration/.keep
  51. 0
    0
      test/mailers/.keep
  52. 0
    0
      test/models/.keep
  53. 13
    0
      test/test_helper.rb
  54. 0
    0
      tmp/.keep
  55. 0
    0
      tmp/pids/.keep
  56. 0
    0
      vendor/.keep

+ 47
- 0
Gemfile View File

@@ -0,0 +1,47 @@
1
+source 'https://rubygems.org'
2
+git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
+
4
+ruby '3.0.1'
5
+
6
+# Bundle edge Rails instead: gem 'rails', github: 'rails/rails', branch: 'main'
7
+gem 'rails', '~> 6.1.3', '>= 6.1.3.1'
8
+# Use sqlite3 as the database for Active Record
9
+gem 'sqlite3', '~> 1.4'
10
+# Use Puma as the app server
11
+gem 'puma', '~> 5.0'
12
+# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
13
+# gem 'jbuilder', '~> 2.7'
14
+# Use Redis adapter to run Action Cable in production
15
+# gem 'redis', '~> 4.0'
16
+# Use Active Model has_secure_password
17
+# gem 'bcrypt', '~> 3.1.7'
18
+
19
+# Use Active Storage variant
20
+# gem 'image_processing', '~> 1.2'
21
+
22
+# Reduces boot times through caching; required in config/boot.rb
23
+gem 'bootsnap', '>= 1.4.4', require: false
24
+
25
+# Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible
26
+# gem 'rack-cors'
27
+
28
+group :development, :test do
29
+  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
30
+  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
31
+end
32
+
33
+group :development do
34
+  gem 'listen', '~> 3.3'
35
+  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
36
+  gem 'spring'
37
+end
38
+
39
+# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
40
+gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
41
+
42
+gem "jwt", "~> 2.2"
43
+gem "bcrypt", "~> 3.1"
44
+gem "table_print", "~> 1.5"
45
+gem "faker", "~> 2.17"
46
+gem "activerecord-reset-pk-sequence", "~> 0.2.1"
47
+gem "jsonapi-serializer", "~> 2.2"

+ 175
- 0
Gemfile.lock View File

@@ -0,0 +1,175 @@
1
+GEM
2
+  remote: https://rubygems.org/
3
+  specs:
4
+    actioncable (6.1.3.1)
5
+      actionpack (= 6.1.3.1)
6
+      activesupport (= 6.1.3.1)
7
+      nio4r (~> 2.0)
8
+      websocket-driver (>= 0.6.1)
9
+    actionmailbox (6.1.3.1)
10
+      actionpack (= 6.1.3.1)
11
+      activejob (= 6.1.3.1)
12
+      activerecord (= 6.1.3.1)
13
+      activestorage (= 6.1.3.1)
14
+      activesupport (= 6.1.3.1)
15
+      mail (>= 2.7.1)
16
+    actionmailer (6.1.3.1)
17
+      actionpack (= 6.1.3.1)
18
+      actionview (= 6.1.3.1)
19
+      activejob (= 6.1.3.1)
20
+      activesupport (= 6.1.3.1)
21
+      mail (~> 2.5, >= 2.5.4)
22
+      rails-dom-testing (~> 2.0)
23
+    actionpack (6.1.3.1)
24
+      actionview (= 6.1.3.1)
25
+      activesupport (= 6.1.3.1)
26
+      rack (~> 2.0, >= 2.0.9)
27
+      rack-test (>= 0.6.3)
28
+      rails-dom-testing (~> 2.0)
29
+      rails-html-sanitizer (~> 1.0, >= 1.2.0)
30
+    actiontext (6.1.3.1)
31
+      actionpack (= 6.1.3.1)
32
+      activerecord (= 6.1.3.1)
33
+      activestorage (= 6.1.3.1)
34
+      activesupport (= 6.1.3.1)
35
+      nokogiri (>= 1.8.5)
36
+    actionview (6.1.3.1)
37
+      activesupport (= 6.1.3.1)
38
+      builder (~> 3.1)
39
+      erubi (~> 1.4)
40
+      rails-dom-testing (~> 2.0)
41
+      rails-html-sanitizer (~> 1.1, >= 1.2.0)
42
+    activejob (6.1.3.1)
43
+      activesupport (= 6.1.3.1)
44
+      globalid (>= 0.3.6)
45
+    activemodel (6.1.3.1)
46
+      activesupport (= 6.1.3.1)
47
+    activerecord (6.1.3.1)
48
+      activemodel (= 6.1.3.1)
49
+      activesupport (= 6.1.3.1)
50
+    activerecord-reset-pk-sequence (0.2.1)
51
+    activestorage (6.1.3.1)
52
+      actionpack (= 6.1.3.1)
53
+      activejob (= 6.1.3.1)
54
+      activerecord (= 6.1.3.1)
55
+      activesupport (= 6.1.3.1)
56
+      marcel (~> 1.0.0)
57
+      mini_mime (~> 1.0.2)
58
+    activesupport (6.1.3.1)
59
+      concurrent-ruby (~> 1.0, >= 1.0.2)
60
+      i18n (>= 1.6, < 2)
61
+      minitest (>= 5.1)
62
+      tzinfo (~> 2.0)
63
+      zeitwerk (~> 2.3)
64
+    bcrypt (3.1.16)
65
+    bootsnap (1.7.3)
66
+      msgpack (~> 1.0)
67
+    builder (3.2.4)
68
+    byebug (11.1.3)
69
+    concurrent-ruby (1.1.8)
70
+    crass (1.0.6)
71
+    erubi (1.10.0)
72
+    faker (2.17.0)
73
+      i18n (>= 1.6, < 2)
74
+    ffi (1.15.0)
75
+    globalid (0.4.2)
76
+      activesupport (>= 4.2.0)
77
+    i18n (1.8.10)
78
+      concurrent-ruby (~> 1.0)
79
+    jsonapi-serializer (2.2.0)
80
+      activesupport (>= 4.2)
81
+    jwt (2.2.2)
82
+    listen (3.5.1)
83
+      rb-fsevent (~> 0.10, >= 0.10.3)
84
+      rb-inotify (~> 0.9, >= 0.9.10)
85
+    loofah (2.9.1)
86
+      crass (~> 1.0.2)
87
+      nokogiri (>= 1.5.9)
88
+    mail (2.7.1)
89
+      mini_mime (>= 0.1.1)
90
+    marcel (1.0.1)
91
+    method_source (1.0.0)
92
+    mini_mime (1.0.3)
93
+    minitest (5.14.4)
94
+    msgpack (1.4.2)
95
+    nio4r (2.5.7)
96
+    nokogiri (1.11.3-x86_64-linux)
97
+      racc (~> 1.4)
98
+    puma (5.2.2)
99
+      nio4r (~> 2.0)
100
+    racc (1.5.2)
101
+    rack (2.2.3)
102
+    rack-test (1.1.0)
103
+      rack (>= 1.0, < 3)
104
+    rails (6.1.3.1)
105
+      actioncable (= 6.1.3.1)
106
+      actionmailbox (= 6.1.3.1)
107
+      actionmailer (= 6.1.3.1)
108
+      actionpack (= 6.1.3.1)
109
+      actiontext (= 6.1.3.1)
110
+      actionview (= 6.1.3.1)
111
+      activejob (= 6.1.3.1)
112
+      activemodel (= 6.1.3.1)
113
+      activerecord (= 6.1.3.1)
114
+      activestorage (= 6.1.3.1)
115
+      activesupport (= 6.1.3.1)
116
+      bundler (>= 1.15.0)
117
+      railties (= 6.1.3.1)
118
+      sprockets-rails (>= 2.0.0)
119
+    rails-dom-testing (2.0.3)
120
+      activesupport (>= 4.2.0)
121
+      nokogiri (>= 1.6)
122
+    rails-html-sanitizer (1.3.0)
123
+      loofah (~> 2.3)
124
+    railties (6.1.3.1)
125
+      actionpack (= 6.1.3.1)
126
+      activesupport (= 6.1.3.1)
127
+      method_source
128
+      rake (>= 0.8.7)
129
+      thor (~> 1.0)
130
+    rake (13.0.3)
131
+    rb-fsevent (0.10.4)
132
+    rb-inotify (0.10.1)
133
+      ffi (~> 1.0)
134
+    spring (2.1.1)
135
+    sprockets (4.0.2)
136
+      concurrent-ruby (~> 1.0)
137
+      rack (> 1, < 3)
138
+    sprockets-rails (3.2.2)
139
+      actionpack (>= 4.0)
140
+      activesupport (>= 4.0)
141
+      sprockets (>= 3.0.0)
142
+    sqlite3 (1.4.2)
143
+    table_print (1.5.7)
144
+    thor (1.1.0)
145
+    tzinfo (2.0.4)
146
+      concurrent-ruby (~> 1.0)
147
+    websocket-driver (0.7.3)
148
+      websocket-extensions (>= 0.1.0)
149
+    websocket-extensions (0.1.5)
150
+    zeitwerk (2.4.2)
151
+
152
+PLATFORMS
153
+  x86_64-linux
154
+
155
+DEPENDENCIES
156
+  activerecord-reset-pk-sequence (~> 0.2.1)
157
+  bcrypt (~> 3.1)
158
+  bootsnap (>= 1.4.4)
159
+  byebug
160
+  faker (~> 2.17)
161
+  jsonapi-serializer (~> 2.2)
162
+  jwt (~> 2.2)
163
+  listen (~> 3.3)
164
+  puma (~> 5.0)
165
+  rails (~> 6.1.3, >= 6.1.3.1)
166
+  spring
167
+  sqlite3 (~> 1.4)
168
+  table_print (~> 1.5)
169
+  tzinfo-data
170
+
171
+RUBY VERSION
172
+   ruby 3.0.1p64
173
+
174
+BUNDLED WITH
175
+   2.2.15

+ 24
- 0
README.md View File

@@ -0,0 +1,24 @@
1
+# README
2
+
3
+This README would normally document whatever steps are necessary to get the
4
+application up and running.
5
+
6
+Things you may want to cover:
7
+
8
+* Ruby version
9
+
10
+* System dependencies
11
+
12
+* Configuration
13
+
14
+* Database creation
15
+
16
+* Database initialization
17
+
18
+* How to run the test suite
19
+
20
+* Services (job queues, cache servers, search engines, etc.)
21
+
22
+* Deployment instructions
23
+
24
+* ...

+ 6
- 0
Rakefile View File

@@ -0,0 +1,6 @@
1
+# Add your own tasks in files placed in lib/tasks ending in .rake,
2
+# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+require_relative "config/application"
5
+
6
+Rails.application.load_tasks

+ 4
- 0
app/channels/application_cable/channel.rb View File

@@ -0,0 +1,4 @@
1
+module ApplicationCable
2
+  class Channel < ActionCable::Channel::Base
3
+  end
4
+end

+ 4
- 0
app/channels/application_cable/connection.rb View File

@@ -0,0 +1,4 @@
1
+module ApplicationCable
2
+  class Connection < ActionCable::Connection::Base
3
+  end
4
+end

+ 2
- 0
app/controllers/application_controller.rb View File

@@ -0,0 +1,2 @@
1
+class ApplicationController < ActionController::API
2
+end

+ 0
- 0
app/controllers/concerns/.keep View File


+ 7
- 0
app/jobs/application_job.rb View File

@@ -0,0 +1,7 @@
1
+class ApplicationJob < ActiveJob::Base
2
+  # Automatically retry jobs that encountered a deadlock
3
+  # retry_on ActiveRecord::Deadlocked
4
+
5
+  # Most jobs are safe to ignore if the underlying records are no longer available
6
+  # discard_on ActiveJob::DeserializationError
7
+end

+ 4
- 0
app/mailers/application_mailer.rb View File

@@ -0,0 +1,4 @@
1
+class ApplicationMailer < ActionMailer::Base
2
+  default from: 'from@example.com'
3
+  layout 'mailer'
4
+end

+ 3
- 0
app/models/application_record.rb View File

@@ -0,0 +1,3 @@
1
+class ApplicationRecord < ActiveRecord::Base
2
+  self.abstract_class = true
3
+end

+ 0
- 0
app/models/concerns/.keep View File


+ 13
- 0
app/views/layouts/mailer.html.erb View File

@@ -0,0 +1,13 @@
1
+<!DOCTYPE html>
2
+<html>
3
+  <head>
4
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+    <style>
6
+      /* Email styles need to be inline */
7
+    </style>
8
+  </head>
9
+
10
+  <body>
11
+    <%= yield %>
12
+  </body>
13
+</html>

+ 1
- 0
app/views/layouts/mailer.text.erb View File

@@ -0,0 +1 @@
1
+<%= yield %>

+ 114
- 0
bin/bundle View File

@@ -0,0 +1,114 @@
1
+#!/usr/bin/env ruby
2
+# frozen_string_literal: true
3
+
4
+#
5
+# This file was generated by Bundler.
6
+#
7
+# The application 'bundle' is installed as part of a gem, and
8
+# this file is here to facilitate running it.
9
+#
10
+
11
+require "rubygems"
12
+
13
+m = Module.new do
14
+  module_function
15
+
16
+  def invoked_as_script?
17
+    File.expand_path($0) == File.expand_path(__FILE__)
18
+  end
19
+
20
+  def env_var_version
21
+    ENV["BUNDLER_VERSION"]
22
+  end
23
+
24
+  def cli_arg_version
25
+    return unless invoked_as_script? # don't want to hijack other binstubs
26
+    return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update`
27
+    bundler_version = nil
28
+    update_index = nil
29
+    ARGV.each_with_index do |a, i|
30
+      if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN
31
+        bundler_version = a
32
+      end
33
+      next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/
34
+      bundler_version = $1
35
+      update_index = i
36
+    end
37
+    bundler_version
38
+  end
39
+
40
+  def gemfile
41
+    gemfile = ENV["BUNDLE_GEMFILE"]
42
+    return gemfile if gemfile && !gemfile.empty?
43
+
44
+    File.expand_path("../../Gemfile", __FILE__)
45
+  end
46
+
47
+  def lockfile
48
+    lockfile =
49
+      case File.basename(gemfile)
50
+      when "gems.rb" then gemfile.sub(/\.rb$/, gemfile)
51
+      else "#{gemfile}.lock"
52
+      end
53
+    File.expand_path(lockfile)
54
+  end
55
+
56
+  def lockfile_version
57
+    return unless File.file?(lockfile)
58
+    lockfile_contents = File.read(lockfile)
59
+    return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/
60
+    Regexp.last_match(1)
61
+  end
62
+
63
+  def bundler_version
64
+    @bundler_version ||=
65
+      env_var_version || cli_arg_version ||
66
+        lockfile_version
67
+  end
68
+
69
+  def bundler_requirement
70
+    return "#{Gem::Requirement.default}.a" unless bundler_version
71
+
72
+    bundler_gem_version = Gem::Version.new(bundler_version)
73
+
74
+    requirement = bundler_gem_version.approximate_recommendation
75
+
76
+    return requirement unless Gem::Version.new(Gem::VERSION) < Gem::Version.new("2.7.0")
77
+
78
+    requirement += ".a" if bundler_gem_version.prerelease?
79
+
80
+    requirement
81
+  end
82
+
83
+  def load_bundler!
84
+    ENV["BUNDLE_GEMFILE"] ||= gemfile
85
+
86
+    activate_bundler
87
+  end
88
+
89
+  def activate_bundler
90
+    gem_error = activation_error_handling do
91
+      gem "bundler", bundler_requirement
92
+    end
93
+    return if gem_error.nil?
94
+    require_error = activation_error_handling do
95
+      require "bundler/version"
96
+    end
97
+    return if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION))
98
+    warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`"
99
+    exit 42
100
+  end
101
+
102
+  def activation_error_handling
103
+    yield
104
+    nil
105
+  rescue StandardError, LoadError => e
106
+    e
107
+  end
108
+end
109
+
110
+m.load_bundler!
111
+
112
+if m.invoked_as_script?
113
+  load Gem.bin_path("bundler", "bundle")
114
+end

+ 5
- 0
bin/rails View File

@@ -0,0 +1,5 @@
1
+#!/usr/bin/env ruby
2
+load File.expand_path("spring", __dir__)
3
+APP_PATH = File.expand_path('../config/application', __dir__)
4
+require_relative "../config/boot"
5
+require "rails/commands"

+ 5
- 0
bin/rake View File

@@ -0,0 +1,5 @@
1
+#!/usr/bin/env ruby
2
+load File.expand_path("spring", __dir__)
3
+require_relative "../config/boot"
4
+require "rake"
5
+Rake.application.run

+ 33
- 0
bin/setup View File

@@ -0,0 +1,33 @@
1
+#!/usr/bin/env ruby
2
+require "fileutils"
3
+
4
+# path to your application root.
5
+APP_ROOT = File.expand_path('..', __dir__)
6
+
7
+def system!(*args)
8
+  system(*args) || abort("\n== Command #{args} failed ==")
9
+end
10
+
11
+FileUtils.chdir APP_ROOT do
12
+  # This script is a way to set up or update your development environment automatically.
13
+  # This script is idempotent, so that you can run it at any time and get an expectable outcome.
14
+  # Add necessary setup steps to this file.
15
+
16
+  puts '== Installing dependencies =='
17
+  system! 'gem install bundler --conservative'
18
+  system('bundle check') || system!('bundle install')
19
+
20
+  # puts "\n== Copying sample files =="
21
+  # unless File.exist?('config/database.yml')
22
+  #   FileUtils.cp 'config/database.yml.sample', 'config/database.yml'
23
+  # end
24
+
25
+  puts "\n== Preparing database =="
26
+  system! 'bin/rails db:prepare'
27
+
28
+  puts "\n== Removing old logs and tempfiles =="
29
+  system! 'bin/rails log:clear tmp:clear'
30
+
31
+  puts "\n== Restarting application server =="
32
+  system! 'bin/rails restart'
33
+end

+ 14
- 0
bin/spring View File

@@ -0,0 +1,14 @@
1
+#!/usr/bin/env ruby
2
+if !defined?(Spring) && [nil, "development", "test"].include?(ENV["RAILS_ENV"])
3
+  gem "bundler"
4
+  require "bundler"
5
+
6
+  # Load Spring without loading other gems in the Gemfile, for speed.
7
+  Bundler.locked_gems&.specs&.find { |spec| spec.name == "spring" }&.tap do |spring|
8
+    Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path
9
+    gem "spring", spring.version
10
+    require "spring/binstub"
11
+  rescue Gem::LoadError
12
+    # Ignore when Spring is not installed.
13
+  end
14
+end

+ 6
- 0
config.ru View File

@@ -0,0 +1,6 @@
1
+# This file is used by Rack-based servers to start the application.
2
+
3
+require_relative "config/environment"
4
+
5
+run Rails.application
6
+Rails.application.load_server

+ 40
- 0
config/application.rb View File

@@ -0,0 +1,40 @@
1
+require_relative "boot"
2
+
3
+require "rails"
4
+# Pick the frameworks you want:
5
+require "active_model/railtie"
6
+require "active_job/railtie"
7
+require "active_record/railtie"
8
+require "active_storage/engine"
9
+require "action_controller/railtie"
10
+require "action_mailer/railtie"
11
+require "action_mailbox/engine"
12
+require "action_text/engine"
13
+require "action_view/railtie"
14
+require "action_cable/engine"
15
+# require "sprockets/railtie"
16
+require "rails/test_unit/railtie"
17
+
18
+# Require the gems listed in Gemfile, including any gems
19
+# you've limited to :test, :development, or :production.
20
+Bundler.require(*Rails.groups)
21
+
22
+module RegistraApi
23
+  class Application < Rails::Application
24
+    # Initialize configuration defaults for originally generated Rails version.
25
+    config.load_defaults 6.1
26
+
27
+    # Configuration for the application, engines, and railties goes here.
28
+    #
29
+    # These settings can be overridden in specific environments using the files
30
+    # in config/environments, which are processed later.
31
+    #
32
+    # config.time_zone = "Central Time (US & Canada)"
33
+    # config.eager_load_paths << Rails.root.join("extras")
34
+
35
+    # Only loads a smaller set of middleware suitable for API only apps.
36
+    # Middleware like session, flash, cookies can be added back manually.
37
+    # Skip views, helpers and assets when generating a new resource.
38
+    config.api_only = true
39
+  end
40
+end

+ 4
- 0
config/boot.rb View File

@@ -0,0 +1,4 @@
1
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
2
+
3
+require "bundler/setup" # Set up gems listed in the Gemfile.
4
+require "bootsnap/setup" # Speed up boot time by caching expensive operations.

+ 10
- 0
config/cable.yml View File

@@ -0,0 +1,10 @@
1
+development:
2
+  adapter: async
3
+
4
+test:
5
+  adapter: test
6
+
7
+production:
8
+  adapter: redis
9
+  url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %>
10
+  channel_prefix: registra_api_production

+ 1
- 0
config/credentials.yml.enc View File

@@ -0,0 +1 @@
1
+2dHzsQKNxnWbUOaTEcf8zXKNzXRFE1BwQeJ2sH2zS4t6thboh3+Iar5BCHe2bZJqoY5QKrcFbZVR7PH0NBpNdM5eW5cyv1ilQtqZvR2D7bsygAN/650Pc+mIGx0rWAL7HInGzB6nF+ntBk+FinOORmkoTAuWs6655lW+pnu6S41GVnGkfoBT1xkNMSUqN5J4QxzM2+SU6h/eO+yMJaWKwsICEln20RlcZk5PY6EOireRprASrHA9Y+hUU1aGis4DpGu+00roeUzcpJ3oOog5Cxk5UnIf2uXTAvAZF9oQkWZCP1I86kzaxR8QgdkQRj+R+Sb3zQBV+HVIz8n4xRNwSQ+XyV6LvDlJk8eE2212Tm96QLj0fSuKlwL2q+dKIyqXttkwNw8YlUtnRmTYfN90JQvyF/cjGhXE23Vz--hGKWYFyN6Yu4hqc4--PClSyyAdkZgXAZIFZYzDvQ==

+ 25
- 0
config/database.yml View File

@@ -0,0 +1,25 @@
1
+# SQLite. Versions 3.8.0 and up are supported.
2
+#   gem install sqlite3
3
+#
4
+#   Ensure the SQLite 3 gem is defined in your Gemfile
5
+#   gem 'sqlite3'
6
+#
7
+default: &default
8
+  adapter: sqlite3
9
+  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
10
+  timeout: 5000
11
+
12
+development:
13
+  <<: *default
14
+  database: db/development.sqlite3
15
+
16
+# Warning: The database defined as "test" will be erased and
17
+# re-generated from your development database when you run "rake".
18
+# Do not set this db to the same as development or production.
19
+test:
20
+  <<: *default
21
+  database: db/test.sqlite3
22
+
23
+production:
24
+  <<: *default
25
+  database: db/production.sqlite3

+ 5
- 0
config/environment.rb View File

@@ -0,0 +1,5 @@
1
+# Load the Rails application.
2
+require_relative "application"
3
+
4
+# Initialize the Rails application.
5
+Rails.application.initialize!

+ 66
- 0
config/environments/development.rb View File

@@ -0,0 +1,66 @@
1
+require "active_support/core_ext/integer/time"
2
+
3
+Rails.application.configure do
4
+  # Settings specified here will take precedence over those in config/application.rb.
5
+
6
+  # In the development environment your application's code is reloaded any time
7
+  # it changes. This slows down response time but is perfect for development
8
+  # since you don't have to restart the web server when you make code changes.
9
+  config.cache_classes = false
10
+
11
+  # Do not eager load code on boot.
12
+  config.eager_load = false
13
+
14
+  # Show full error reports.
15
+  config.consider_all_requests_local = true
16
+
17
+  # Enable/disable caching. By default caching is disabled.
18
+  # Run rails dev:cache to toggle caching.
19
+  if Rails.root.join('tmp', 'caching-dev.txt').exist?
20
+    config.cache_store = :memory_store
21
+    config.public_file_server.headers = {
22
+      'Cache-Control' => "public, max-age=#{2.days.to_i}"
23
+    }
24
+  else
25
+    config.action_controller.perform_caching = false
26
+
27
+    config.cache_store = :null_store
28
+  end
29
+
30
+  # Store uploaded files on the local file system (see config/storage.yml for options).
31
+  config.active_storage.service = :local
32
+
33
+  # Don't care if the mailer can't send.
34
+  config.action_mailer.raise_delivery_errors = false
35
+
36
+  config.action_mailer.perform_caching = false
37
+
38
+  # Print deprecation notices to the Rails logger.
39
+  config.active_support.deprecation = :log
40
+
41
+  # Raise exceptions for disallowed deprecations.
42
+  config.active_support.disallowed_deprecation = :raise
43
+
44
+  # Tell Active Support which deprecation messages to disallow.
45
+  config.active_support.disallowed_deprecation_warnings = []
46
+
47
+  # Raise an error on page load if there are pending migrations.
48
+  config.active_record.migration_error = :page_load
49
+
50
+  # Highlight code that triggered database queries in logs.
51
+  config.active_record.verbose_query_logs = true
52
+
53
+
54
+  # Raises error for missing translations.
55
+  # config.i18n.raise_on_missing_translations = true
56
+
57
+  # Annotate rendered view with file names.
58
+  # config.action_view.annotate_rendered_view_with_filenames = true
59
+
60
+  # Use an evented file watcher to asynchronously detect changes in source code,
61
+  # routes, locales, etc. This feature depends on the listen gem.
62
+  config.file_watcher = ActiveSupport::EventedFileUpdateChecker
63
+
64
+  # Uncomment if you wish to allow Action Cable access from any origin.
65
+  # config.action_cable.disable_request_forgery_protection = true
66
+end

+ 113
- 0
config/environments/production.rb View File

@@ -0,0 +1,113 @@
1
+require "active_support/core_ext/integer/time"
2
+
3
+Rails.application.configure do
4
+  # Settings specified here will take precedence over those in config/application.rb.
5
+
6
+  # Code is not reloaded between requests.
7
+  config.cache_classes = true
8
+
9
+  # Eager load code on boot. This eager loads most of Rails and
10
+  # your application in memory, allowing both threaded web servers
11
+  # and those relying on copy on write to perform better.
12
+  # Rake tasks automatically ignore this option for performance.
13
+  config.eager_load = true
14
+
15
+  # Full error reports are disabled and caching is turned on.
16
+  config.consider_all_requests_local       = false
17
+
18
+  # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
19
+  # or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
20
+  # config.require_master_key = true
21
+
22
+  # Disable serving static files from the `/public` folder by default since
23
+  # Apache or NGINX already handles this.
24
+  config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
25
+
26
+  # Enable serving of images, stylesheets, and JavaScripts from an asset server.
27
+  # config.asset_host = 'http://assets.example.com'
28
+
29
+  # Specifies the header that your server uses for sending files.
30
+  # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
31
+  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
32
+
33
+  # Store uploaded files on the local file system (see config/storage.yml for options).
34
+  config.active_storage.service = :local
35
+
36
+  # Mount Action Cable outside main process or domain.
37
+  # config.action_cable.mount_path = nil
38
+  # config.action_cable.url = 'wss://example.com/cable'
39
+  # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
40
+
41
+  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
42
+  # config.force_ssl = true
43
+
44
+  # Include generic and useful information about system operation, but avoid logging too much
45
+  # information to avoid inadvertent exposure of personally identifiable information (PII).
46
+  config.log_level = :info
47
+
48
+  # Prepend all log lines with the following tags.
49
+  config.log_tags = [ :request_id ]
50
+
51
+  # Use a different cache store in production.
52
+  # config.cache_store = :mem_cache_store
53
+
54
+  # Use a real queuing backend for Active Job (and separate queues per environment).
55
+  # config.active_job.queue_adapter     = :resque
56
+  # config.active_job.queue_name_prefix = "registra_api_production"
57
+
58
+  config.action_mailer.perform_caching = false
59
+
60
+  # Ignore bad email addresses and do not raise email delivery errors.
61
+  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
62
+  # config.action_mailer.raise_delivery_errors = false
63
+
64
+  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
65
+  # the I18n.default_locale when a translation cannot be found).
66
+  config.i18n.fallbacks = true
67
+
68
+  # Send deprecation notices to registered listeners.
69
+  config.active_support.deprecation = :notify
70
+
71
+  # Log disallowed deprecations.
72
+  config.active_support.disallowed_deprecation = :log
73
+
74
+  # Tell Active Support which deprecation messages to disallow.
75
+  config.active_support.disallowed_deprecation_warnings = []
76
+
77
+  # Use default logging formatter so that PID and timestamp are not suppressed.
78
+  config.log_formatter = ::Logger::Formatter.new
79
+
80
+  # Use a different logger for distributed setups.
81
+  # require "syslog/logger"
82
+  # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
83
+
84
+  if ENV["RAILS_LOG_TO_STDOUT"].present?
85
+    logger           = ActiveSupport::Logger.new(STDOUT)
86
+    logger.formatter = config.log_formatter
87
+    config.logger    = ActiveSupport::TaggedLogging.new(logger)
88
+  end
89
+
90
+  # Do not dump schema after migrations.
91
+  config.active_record.dump_schema_after_migration = false
92
+
93
+  # Inserts middleware to perform automatic connection switching.
94
+  # The `database_selector` hash is used to pass options to the DatabaseSelector
95
+  # middleware. The `delay` is used to determine how long to wait after a write
96
+  # to send a subsequent read to the primary.
97
+  #
98
+  # The `database_resolver` class is used by the middleware to determine which
99
+  # database is appropriate to use based on the time delay.
100
+  #
101
+  # The `database_resolver_context` class is used by the middleware to set
102
+  # timestamps for the last write to the primary. The resolver uses the context
103
+  # class timestamps to determine how long to wait before reading from the
104
+  # replica.
105
+  #
106
+  # By default Rails will store a last write timestamp in the session. The
107
+  # DatabaseSelector middleware is designed as such you can define your own
108
+  # strategy for connection switching and pass that into the middleware through
109
+  # these configuration options.
110
+  # config.active_record.database_selector = { delay: 2.seconds }
111
+  # config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver
112
+  # config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session
113
+end

+ 60
- 0
config/environments/test.rb View File

@@ -0,0 +1,60 @@
1
+require "active_support/core_ext/integer/time"
2
+
3
+# The test environment is used exclusively to run your application's
4
+# test suite. You never need to work with it otherwise. Remember that
5
+# your test database is "scratch space" for the test suite and is wiped
6
+# and recreated between test runs. Don't rely on the data there!
7
+
8
+Rails.application.configure do
9
+  # Settings specified here will take precedence over those in config/application.rb.
10
+
11
+  config.cache_classes = false
12
+  config.action_view.cache_template_loading = true
13
+
14
+  # Do not eager load code on boot. This avoids loading your whole application
15
+  # just for the purpose of running a single test. If you are using a tool that
16
+  # preloads Rails for running tests, you may have to set it to true.
17
+  config.eager_load = false
18
+
19
+  # Configure public file server for tests with Cache-Control for performance.
20
+  config.public_file_server.enabled = true
21
+  config.public_file_server.headers = {
22
+    'Cache-Control' => "public, max-age=#{1.hour.to_i}"
23
+  }
24
+
25
+  # Show full error reports and disable caching.
26
+  config.consider_all_requests_local       = true
27
+  config.action_controller.perform_caching = false
28
+  config.cache_store = :null_store
29
+
30
+  # Raise exceptions instead of rendering exception templates.
31
+  config.action_dispatch.show_exceptions = false
32
+
33
+  # Disable request forgery protection in test environment.
34
+  config.action_controller.allow_forgery_protection = false
35
+
36
+  # Store uploaded files on the local file system in a temporary directory.
37
+  config.active_storage.service = :test
38
+
39
+  config.action_mailer.perform_caching = false
40
+
41
+  # Tell Action Mailer not to deliver emails to the real world.
42
+  # The :test delivery method accumulates sent emails in the
43
+  # ActionMailer::Base.deliveries array.
44
+  config.action_mailer.delivery_method = :test
45
+
46
+  # Print deprecation notices to the stderr.
47
+  config.active_support.deprecation = :stderr
48
+
49
+  # Raise exceptions for disallowed deprecations.
50
+  config.active_support.disallowed_deprecation = :raise
51
+
52
+  # Tell Active Support which deprecation messages to disallow.
53
+  config.active_support.disallowed_deprecation_warnings = []
54
+
55
+  # Raises error for missing translations.
56
+  # config.i18n.raise_on_missing_translations = true
57
+
58
+  # Annotate rendered view with file names.
59
+  # config.action_view.annotate_rendered_view_with_filenames = true
60
+end

+ 8
- 0
config/initializers/application_controller_renderer.rb View File

@@ -0,0 +1,8 @@
1
+# Be sure to restart your server when you modify this file.
2
+
3
+# ActiveSupport::Reloader.to_prepare do
4
+#   ApplicationController.renderer.defaults.merge!(
5
+#     http_host: 'example.org',
6
+#     https: false
7
+#   )
8
+# end

+ 8
- 0
config/initializers/backtrace_silencers.rb View File

@@ -0,0 +1,8 @@
1
+# Be sure to restart your server when you modify this file.
2
+
3
+# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
+# Rails.backtrace_cleaner.add_silencer { |line| /my_noisy_library/.match?(line) }
5
+
6
+# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code
7
+# by setting BACKTRACE=1 before calling your invocation, like "BACKTRACE=1 ./bin/rails runner 'MyClass.perform'".
8
+Rails.backtrace_cleaner.remove_silencers! if ENV["BACKTRACE"]

+ 16
- 0
config/initializers/cors.rb View File

@@ -0,0 +1,16 @@
1
+# Be sure to restart your server when you modify this file.
2
+
3
+# Avoid CORS issues when API is called from the frontend app.
4
+# Handle Cross-Origin Resource Sharing (CORS) in order to accept cross-origin AJAX requests.
5
+
6
+# Read more: https://github.com/cyu/rack-cors
7
+
8
+# Rails.application.config.middleware.insert_before 0, Rack::Cors do
9
+#   allow do
10
+#     origins 'example.com'
11
+#
12
+#     resource '*',
13
+#       headers: :any,
14
+#       methods: [:get, :post, :put, :patch, :delete, :options, :head]
15
+#   end
16
+# end

+ 6
- 0
config/initializers/filter_parameter_logging.rb View File

@@ -0,0 +1,6 @@
1
+# Be sure to restart your server when you modify this file.
2
+
3
+# Configure sensitive parameters which will be filtered from the log file.
4
+Rails.application.config.filter_parameters += [
5
+  :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn
6
+]

+ 16
- 0
config/initializers/inflections.rb View File

@@ -0,0 +1,16 @@
1
+# Be sure to restart your server when you modify this file.
2
+
3
+# Add new inflection rules using the following format. Inflections
4
+# are locale specific, and you may define rules for as many different
5
+# locales as you wish. All of these examples are active by default:
6
+# ActiveSupport::Inflector.inflections(:en) do |inflect|
7
+#   inflect.plural /^(ox)$/i, '\1en'
8
+#   inflect.singular /^(ox)en/i, '\1'
9
+#   inflect.irregular 'person', 'people'
10
+#   inflect.uncountable %w( fish sheep )
11
+# end
12
+
13
+# These inflection rules are supported but not enabled by default:
14
+# ActiveSupport::Inflector.inflections(:en) do |inflect|
15
+#   inflect.acronym 'RESTful'
16
+# end

+ 4
- 0
config/initializers/mime_types.rb View File

@@ -0,0 +1,4 @@
1
+# Be sure to restart your server when you modify this file.
2
+
3
+# Add new mime types for use in respond_to blocks:
4
+# Mime::Type.register "text/richtext", :rtf

+ 14
- 0
config/initializers/wrap_parameters.rb View File

@@ -0,0 +1,14 @@
1
+# Be sure to restart your server when you modify this file.
2
+
3
+# This file contains settings for ActionController::ParamsWrapper which
4
+# is enabled by default.
5
+
6
+# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
+ActiveSupport.on_load(:action_controller) do
8
+  wrap_parameters format: [:json]
9
+end
10
+
11
+# To enable root element in JSON for ActiveRecord objects.
12
+# ActiveSupport.on_load(:active_record) do
13
+#   self.include_root_in_json = true
14
+# end

+ 33
- 0
config/locales/en.yml View File

@@ -0,0 +1,33 @@
1
+# Files in the config/locales directory are used for internationalization
2
+# and are automatically loaded by Rails. If you want to use locales other
3
+# than English, add the necessary files in this directory.
4
+#
5
+# To use the locales, use `I18n.t`:
6
+#
7
+#     I18n.t 'hello'
8
+#
9
+# In views, this is aliased to just `t`:
10
+#
11
+#     <%= t('hello') %>
12
+#
13
+# To use a different locale, set it with `I18n.locale`:
14
+#
15
+#     I18n.locale = :es
16
+#
17
+# This would use the information in config/locales/es.yml.
18
+#
19
+# The following keys must be escaped otherwise they will not be retrieved by
20
+# the default I18n backend:
21
+#
22
+# true, false, on, off, yes, no
23
+#
24
+# Instead, surround them with single quotes.
25
+#
26
+# en:
27
+#   'true': 'foo'
28
+#
29
+# To learn more, please read the Rails Internationalization guide
30
+# available at https://guides.rubyonrails.org/i18n.html.
31
+
32
+en:
33
+  hello: "Hello world"

+ 43
- 0
config/puma.rb View File

@@ -0,0 +1,43 @@
1
+# Puma can serve each request in a thread from an internal thread pool.
2
+# The `threads` method setting takes two numbers: a minimum and maximum.
3
+# Any libraries that use thread pools should be configured to match
4
+# the maximum value specified for Puma. Default is set to 5 threads for minimum
5
+# and maximum; this matches the default thread size of Active Record.
6
+#
7
+max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
8
+min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
9
+threads min_threads_count, max_threads_count
10
+
11
+# Specifies the `worker_timeout` threshold that Puma will use to wait before
12
+# terminating a worker in development environments.
13
+#
14
+worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development"
15
+
16
+# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
17
+#
18
+port ENV.fetch("PORT") { 3000 }
19
+
20
+# Specifies the `environment` that Puma will run in.
21
+#
22
+environment ENV.fetch("RAILS_ENV") { "development" }
23
+
24
+# Specifies the `pidfile` that Puma will use.
25
+pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
26
+
27
+# Specifies the number of `workers` to boot in clustered mode.
28
+# Workers are forked web server processes. If using threads and workers together
29
+# the concurrency of the application would be max `threads` * `workers`.
30
+# Workers do not work on JRuby or Windows (both of which do not support
31
+# processes).
32
+#
33
+# workers ENV.fetch("WEB_CONCURRENCY") { 2 }
34
+
35
+# Use the `preload_app!` method when specifying a `workers` number.
36
+# This directive tells Puma to first boot the application and load code
37
+# before forking the application. This takes advantage of Copy On Write
38
+# process behavior so workers use less memory.
39
+#
40
+# preload_app!
41
+
42
+# Allow puma to be restarted by `rails restart` command.
43
+plugin :tmp_restart

+ 3
- 0
config/routes.rb View File

@@ -0,0 +1,3 @@
1
+Rails.application.routes.draw do
2
+  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
3
+end

+ 6
- 0
config/spring.rb View File

@@ -0,0 +1,6 @@
1
+Spring.watch(
2
+  ".ruby-version",
3
+  ".rbenv-vars",
4
+  "tmp/restart.txt",
5
+  "tmp/caching-dev.txt"
6
+)

+ 34
- 0
config/storage.yml View File

@@ -0,0 +1,34 @@
1
+test:
2
+  service: Disk
3
+  root: <%= Rails.root.join("tmp/storage") %>
4
+
5
+local:
6
+  service: Disk
7
+  root: <%= Rails.root.join("storage") %>
8
+
9
+# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
10
+# amazon:
11
+#   service: S3
12
+#   access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
13
+#   secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
14
+#   region: us-east-1
15
+#   bucket: your_own_bucket
16
+
17
+# Remember not to checkin your GCS keyfile to a repository
18
+# google:
19
+#   service: GCS
20
+#   project: your_project
21
+#   credentials: <%= Rails.root.join("path/to/gcs.keyfile") %>
22
+#   bucket: your_own_bucket
23
+
24
+# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key)
25
+# microsoft:
26
+#   service: AzureStorage
27
+#   storage_account_name: your_account_name
28
+#   storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %>
29
+#   container: your_container_name
30
+
31
+# mirror:
32
+#   service: Mirror
33
+#   primary: local
34
+#   mirrors: [ amazon, google, microsoft ]

+ 7
- 0
db/seeds.rb View File

@@ -0,0 +1,7 @@
1
+# This file should contain all the record creation needed to seed the database with its default values.
2
+# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup).
3
+#
4
+# Examples:
5
+#
6
+#   movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
7
+#   Character.create(name: 'Luke', movie: movies.first)

+ 0
- 0
lib/tasks/.keep View File


+ 0
- 0
log/.keep View File


+ 1
- 0
public/robots.txt View File

@@ -0,0 +1 @@
1
+# See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file

+ 0
- 0
storage/.keep View File


+ 11
- 0
test/channels/application_cable/connection_test.rb View File

@@ -0,0 +1,11 @@
1
+require "test_helper"
2
+
3
+class ApplicationCable::ConnectionTest < ActionCable::Connection::TestCase
4
+  # test "connects with cookies" do
5
+  #   cookies.signed[:user_id] = 42
6
+  #
7
+  #   connect
8
+  #
9
+  #   assert_equal connection.user_id, "42"
10
+  # end
11
+end

+ 0
- 0
test/controllers/.keep View File


+ 0
- 0
test/fixtures/files/.keep View File


+ 0
- 0
test/integration/.keep View File


+ 0
- 0
test/mailers/.keep View File


+ 0
- 0
test/models/.keep View File


+ 13
- 0
test/test_helper.rb View File

@@ -0,0 +1,13 @@
1
+ENV['RAILS_ENV'] ||= 'test'
2
+require_relative "../config/environment"
3
+require "rails/test_help"
4
+
5
+class ActiveSupport::TestCase
6
+  # Run tests in parallel with specified workers
7
+  parallelize(workers: :number_of_processors)
8
+
9
+  # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
10
+  fixtures :all
11
+
12
+  # Add more helper methods to be used by all tests here...
13
+end

+ 0
- 0
tmp/.keep View File


+ 0
- 0
tmp/pids/.keep View File


+ 0
- 0
vendor/.keep View File


Loading…
Cancel
Save