bullet_train-api 1.2.10 → 1.2.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63cb60f45a28362fdb22fc05a9e3294cb53f2b087ca9483e142d0728e6a99968
4
- data.tar.gz: b7df83aa717bd4522e0cb48c573d48735c81e66a43df360b1e16379dd08cebd5
3
+ metadata.gz: a4f8d6d77dec24dd8d2766815d042af01738dca790794a8b25566e7cd856460d
4
+ data.tar.gz: 9824629fabe7e7c6cbc6ad32aa33c1f15a2d6c96f41549c0222565cdfba4c708
5
5
  SHA512:
6
- metadata.gz: 3fc8313cbeb06585c5c1837e768ef37f749b2a18f5b5588a031166d6e81815eb0f6a85caeaffa309505afacaa5e35502f3c124c3ce691088b0170eec772e765a
7
- data.tar.gz: 85ec379b44107488397493fc94226fc2d333d3cc0a73179f53821148f0024e028162ece11e6ba52be7f0505adf38a5767032cde00c3f528f97a8c137edb3167c
6
+ metadata.gz: 4a2d7f5e1718ab4fc68507c0c63a0ebe19cb3f7ef1c235e05ba96b41c93902f309300778431b4c0b6e66b4b24b9bdbced1761507471ac488ad4dbcd4c9208b82
7
+ data.tar.gz: b1e2fe3aac4d7e8bfe715b02c1741681fbac2d93a8cb6255bc69b5f8529d5a2ec694690ad2908a83a6788985b3be412de560a1dc0ccc50a1b30ef0dad9b16be8
@@ -54,6 +54,21 @@ module OpenApiHelper
54
54
 
55
55
  attributes_output = JSON.parse(schema_json)
56
56
 
57
+ # Rails attachments aren't technically attributes in a model,
58
+ # so we add the attributes manually to make them available in the API.
59
+ if model.attachment_reflections.any?
60
+ model.attachment_reflections.each do |reflection|
61
+ attribute_name = reflection.first
62
+
63
+ attributes_output["properties"][attribute_name] = {
64
+ "type" => "object",
65
+ "description" => attribute_name.titleize.to_s
66
+ }
67
+
68
+ attributes_output["example"].merge!({attribute_name.to_s => nil})
69
+ end
70
+ end
71
+
57
72
  if has_strong_parameters?("Api::#{@version.upcase}::#{model.name.pluralize}Controller".constantize)
58
73
  strong_params_module = "Api::#{@version.upcase}::#{model.name.pluralize}Controller::StrongParameters".constantize
59
74
  strong_parameter_keys = BulletTrain::Api::StrongParametersReporter.new(model, strong_params_module).report
@@ -86,7 +101,6 @@ module OpenApiHelper
86
101
  heading = t("#{current_model.name.underscore.pluralize}.fields.#{attribute}.heading")
87
102
  attribute_data = current_model.columns_hash[attribute.to_s]
88
103
 
89
- # TODO: File fields don't show up in the columns_hash. How should we handle these?
90
104
  # Default to `string` when the type returns nil.
91
105
  type = attribute_data.nil? ? "string" : attribute_data.type
92
106
 
@@ -4,16 +4,28 @@ module Api::V1::Users::ControllerBase
4
4
  module StrongParameters
5
5
  # Only allow a list of trusted parameters through.
6
6
  def user_params
7
- strong_params = params.require(:user).permit(
8
- *permitted_fields,
7
+ password_fields = [
8
+ :password,
9
+ :current_password,
10
+ :password_confirmation
11
+ ]
12
+ general_fields = [
9
13
  :email,
10
14
  :first_name,
11
15
  :last_name,
12
16
  :time_zone,
13
- :locale,
14
- :current_password,
15
- :password,
16
- :password_confirmation,
17
+ :locale
18
+ ]
19
+
20
+ selected_fields = if params.is_a?(BulletTrain::Api::StrongParametersReporter)
21
+ password_fields + general_fields
22
+ else
23
+ (params["commit"] == t(".buttons.update_password")) ? password_fields : general_fields
24
+ end
25
+
26
+ strong_params = params.require(:user).permit(
27
+ *permitted_fields,
28
+ *selected_fields,
17
29
  # 🚅 super scaffolding will insert new fields above this line.
18
30
  *permitted_arrays,
19
31
  # 🚅 super scaffolding will insert new arrays above this line.
@@ -3,22 +3,22 @@
3
3
  <% p.content_for :body do %>
4
4
  <ul class="space-y" data-turbo="false">
5
5
  <% @teams.each do |team| %>
6
- <li class="bg-white border overflow-hidden sm:rounded-md dark:bg-sealBlue-400">
6
+ <li class="bg-white border overflow-hidden sm:rounded-md dark:bg-slate-400">
7
7
  <% body = capture do %>
8
8
  <div class="px-4 py-4 flex items-center sm:pl-8 sm:pr-6">
9
9
  <div class="min-w-0 flex-1 sm:flex sm:items-center sm:justify-between">
10
- <div class="flex text-xl font-semibold text-blue uppercase group-hover:text-blue-dark tracking-widest dark:text-white">
10
+ <div class="flex text-xl font-semibold text-blue uppercase group-hover:text-blue-800 tracking-widest dark:text-white">
11
11
  <%= team.name %>
12
12
  </div>
13
13
  <% unless can? :connect, team %>
14
- <div class="ml-5 flex-shrink-0 text-gray-400">
14
+ <div class="ml-5 flex-shrink-0 text-slate-400">
15
15
  <%= t(".not_allowed") %>
16
16
  </div>
17
17
  <% end %>
18
18
  </div>
19
19
  <% if can? :connect, team %>
20
20
  <div class="ml-5 flex-shrink-0">
21
- <svg class="h-5 w-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
21
+ <svg class="h-5 w-5 text-slate-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
22
22
  <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd" />
23
23
  </svg>
24
24
  </div>
@@ -27,11 +27,11 @@
27
27
  <% end %>
28
28
 
29
29
  <% if can? :connect, team %>
30
- <%= link_to request.url + "&team_id=#{team.id}", class: "group block hover:bg-gray-50 dark:hover:bg-sealBlue-400 dark:text-sealBlue-800" do %>
30
+ <%= link_to request.url + "&team_id=#{team.id}", class: "group block hover:bg-slate-50 dark:hover:bg-slate-400 dark:text-slate-800", data: {controller: "connection-workflow", action: "connection-workflow#disableTeamButton"} do %>
31
31
  <%= body %>
32
32
  <% end %>
33
33
  <% else %>
34
- <div class="block dark:text-sealBlue-800">
34
+ <div class="block dark:text-slate-800">
35
35
  <%= body %>
36
36
  </div>
37
37
  <% end %>
@@ -1,5 +1,5 @@
1
1
  module BulletTrain
2
2
  module Api
3
- VERSION = "1.2.10"
3
+ VERSION = "1.2.11"
4
4
  end
5
5
  end
@@ -30,5 +30,15 @@ module BulletTrain
30
30
  def self.all_versions
31
31
  (initial_version_numeric..current_version_numeric).map { |version| "v#{version}".to_sym }
32
32
  end
33
+
34
+ def self.set_configuration(application_class)
35
+ application_class.config.to_prepare do
36
+ Doorkeeper::ApplicationController.layout "devise"
37
+
38
+ if Doorkeeper::TokensController
39
+ require_relative "../tokens_controller"
40
+ end
41
+ end
42
+ end
33
43
  end
34
44
  end
@@ -8,7 +8,8 @@ namespace :bullet_train do
8
8
  # Calculate new version.
9
9
  initializer_content = File.new("config/initializers/api.rb").readline
10
10
  previous_version = initializer_content.scan(/v\d+/).pop
11
- new_version = "v#{previous_version.scan(/\d+/).pop.to_i + 1}"
11
+ new_version_int = previous_version.scan(/\d+/).pop.to_i + 1
12
+ new_version = "v#{new_version_int}"
12
13
 
13
14
  # Update initializer.
14
15
  File.write("config/initializers/api.rb", initializer_content.gsub(previous_version, new_version))
@@ -70,6 +71,21 @@ namespace :bullet_train do
70
71
  end
71
72
  Scaffolding::FileManipulator.write("config/routes.rb", updated_file_contents)
72
73
 
74
+ # Update application locale for each locale that exists.
75
+ I18n.available_locales.each do |lang|
76
+ file = "config/locales/#{lang}/application.#{lang}.yml"
77
+ transformer = Scaffolding::Transformer.new("", "")
78
+
79
+ if File.exist?(file)
80
+ transformer.add_line_to_file(
81
+ file,
82
+ "#{new_version_int}: #{new_version.upcase}",
83
+ Scaffolding::Transformer::RUBY_NEW_API_VERSION_HOOK,
84
+ prepend: true
85
+ )
86
+ end
87
+ end
88
+
73
89
  puts "Finished bumping to #{new_version}"
74
90
  end
75
91
  end
@@ -0,0 +1,21 @@
1
+ # TODO Is there a better way to implement this?
2
+ # This monkey patch is required to ensure the OAuth2 token includes which team was connected to.
3
+ # It gets required by BulletTrain::Api.set_configuration.
4
+
5
+ class Doorkeeper::TokensController
6
+ def create
7
+ headers.merge!(authorize_response.headers)
8
+
9
+ user = if authorize_response.is_a?(Doorkeeper::OAuth::ErrorResponse)
10
+ nil
11
+ else
12
+ User.find(authorize_response.token.resource_owner_id)
13
+ end
14
+
15
+ # Add the selected `team_id` to this response.
16
+ render json: authorize_response.body.merge(user&.teams&.one? ? {"team_id" => user.team_ids.first} : {}),
17
+ status: authorize_response.status
18
+ rescue Doorkeeper::Errors::DoorkeeperError => e
19
+ handle_token_exception(e)
20
+ end
21
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bullet_train-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.10
4
+ version: 1.2.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Culver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-31 00:00:00.000000000 Z
11
+ date: 2023-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: standard
@@ -151,17 +151,14 @@ files:
151
151
  - app/views/account/platform/access_tokens/index.html.erb
152
152
  - app/views/account/platform/access_tokens/new.html.erb
153
153
  - app/views/account/platform/access_tokens/show.html.erb
154
- - app/views/account/platform/applications/_application.json.jbuilder
155
154
  - app/views/account/platform/applications/_breadcrumbs.html.erb
156
155
  - app/views/account/platform/applications/_form.html.erb
157
156
  - app/views/account/platform/applications/_index.html.erb
158
157
  - app/views/account/platform/applications/_menu_item.html.erb
159
158
  - app/views/account/platform/applications/edit.html.erb
160
159
  - app/views/account/platform/applications/index.html.erb
161
- - app/views/account/platform/applications/index.json.jbuilder
162
160
  - app/views/account/platform/applications/new.html.erb
163
161
  - app/views/account/platform/applications/show.html.erb
164
- - app/views/account/platform/applications/show.json.jbuilder
165
162
  - app/views/account/platform/connections/new.html.erb
166
163
  - app/views/api/v1/open_api/shared/_paths.yaml.erb
167
164
  - app/views/api/v1/open_api/teams/_paths.yaml.erb
@@ -196,6 +193,7 @@ files:
196
193
  - lib/bullet_train/platform.rb
197
194
  - lib/bullet_train/platform/connection_workflow.rb
198
195
  - lib/tasks/bullet_train/api_tasks.rake
196
+ - lib/tokens_controller.rb
199
197
  homepage: https://github.com/bullet-train-co/bullet_train-api
200
198
  licenses:
201
199
  - MIT
@@ -1,9 +0,0 @@
1
- json.extract! application,
2
- :id,
3
- :team_id,
4
- :name,
5
- :redirect_uri,
6
- # 🚅 super scaffolding will insert new fields above this line.
7
- :created_at,
8
- :updated_at
9
- json.url account_platform_application_url(application, format: :json)
@@ -1 +0,0 @@
1
- json.array! @applications, partial: "platform/applications/application", as: :application
@@ -1 +0,0 @@
1
- json.partial! "platform/applications/application", application: @application