jsonapi_responses 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5fbe35850d670ca0c3dc585f59a578d92e7c311301807972ec22a7a9803a2dd4
4
- data.tar.gz: d11e37a4a0ebd10019668378864687edaafdcd8a8658920975462015f8c6e9cc
3
+ metadata.gz: 90ed37460147f9a795a6297a734d47b55a7bcb4bcbb98025c294684fc9ad56c9
4
+ data.tar.gz: cbac58151075f09b2b62a2cecf921722f476970c6ac3ea3013869038fea9386e
5
5
  SHA512:
6
- metadata.gz: 327c29bf7b4c02ce010dcf258f39b16ed3673a7d7c7be3dc957b4c1e983f51cd0db3e491cd3a5e1c8895d37cece7458334010b0d925a474b23f2c2f9ed001a58
7
- data.tar.gz: 2c676e6bd829829e8e1fd269ce3bd76affb73d0e3845a60102f6b128d50ec9f9749ce167cfb981447a8d12025a2dd2700cedf257fd8eadc2fa50beca3b139238
6
+ metadata.gz: bd2261e66bc0f85192da72a1a6386bac3623776e32b0dba1708c9d57cb001a3f990dbbede2c34125af9eefe2fe4bb8366f0f7bab359bf2ee971b402fa09487cc
7
+ data.tar.gz: 6af64f7c8dc1ac440a3b8ca1acec86bf18556cad62b0dab4fe59689431e86d3a54cc1d6ce306170e9a1eaf22f5496eb450a953fef6d5c34754cbf6a607213c22
data/CHANGELOG.md CHANGED
@@ -1,5 +1,6 @@
1
1
  ## [Unreleased]
2
2
 
3
3
  ## [0.1.0] - 2024-10-20
4
+ ## [0.1.1] - 2024-10-20
4
5
 
5
6
  - Initial release
data/Rakefile CHANGED
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
- require "rubocop/rake_task"
8
+ require 'rubocop/rake_task'
9
9
 
10
10
  RuboCop::RakeTask.new
11
11
 
@@ -0,0 +1,10 @@
1
+ # lib/jsonapi_responses/engine.rb
2
+ require 'active_support'
3
+ require 'rails'
4
+
5
+ module JsonapiResponses
6
+ # Define Engine
7
+ class Engine < ::Rails::Engine
8
+ isolate_namespace JsonapiResponses
9
+ end
10
+ end
@@ -1,14 +1,19 @@
1
+ require 'active_support/concern'
2
+ require 'jsonapi_responses/serializable'
3
+ require 'jsonapi_responses/user_context_provider'
4
+
1
5
  module JsonapiResponses
2
6
  # Respondable module
3
7
  module Respondable
4
8
  extend ActiveSupport::Concern
5
9
  include JsonapiResponses::Serializable
10
+ include JsonapiResponses::UserContextProvider
6
11
 
7
12
  private
8
13
 
9
- def respond_with(record, options = {})
14
+ def render_with(record, options = {})
10
15
  action = options[:action] || action_name.to_sym
11
- context = options[:context] || {}
16
+ context = (options[:context] || {}).merge(serialization_user)
12
17
  serializer_class = "#{controller_name.singularize.camelize}Serializer".constantize
13
18
  send("respond_for_#{action}", record, serializer_class, context)
14
19
  rescue NoMethodError
@@ -32,14 +37,14 @@ module JsonapiResponses
32
37
  end
33
38
 
34
39
  def respond_for_update(record, serializer_class, context)
35
- if record.update
40
+ if record.errors.empty?
36
41
  render json: serialize_item(record, serializer_class, context), status: :ok
37
42
  else
38
43
  render json: { errors: record.errors.full_messages }, status: :unprocessable_entity
39
44
  end
40
45
  end
41
46
 
42
- def respond_for_destroy(record)
47
+ def respond_for_destroy(record, _, _)
43
48
  if record.destroy
44
49
  render json: { message: 'register destroyed successfully' }, status: :ok
45
50
  else
@@ -0,0 +1,10 @@
1
+ # JsonapiResponses folder
2
+ module JsonapiResponses
3
+ # Create a helper to intercept de current_user
4
+ module UserContextProvider
5
+ # Este método se incluirá en el controlador y será accesible en los serializadores
6
+ def serialization_user
7
+ { current_user: current_user }
8
+ end
9
+ end
10
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JsonapiResponses
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.2'
5
5
  end
@@ -1,17 +1,9 @@
1
1
  require_relative 'jsonapi_responses/version'
2
+ require_relative 'jsonapi_responses/respondable'
3
+ require 'jsonapi_responses/engine'
4
+ require 'active_support'
2
5
  require 'rails'
3
6
 
4
7
  module JsonapiResponses
5
- # Classes
6
- class Engine < ::Rails::Engine
7
- isolate_namespace JsonapiResponses
8
-
9
- initializer 'jsonapi_responses.initialize' do
10
- ActiveSupport.on_load(:action_controller_base) do
11
- include JsonapiResponses::Respondable
12
- end
13
- end
14
- end
15
-
16
8
  class Error < StandardError; end
17
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsonapi_responses
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Ortega
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-10-20 00:00:00.000000000 Z
11
+ date: 2024-10-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: My first gem which tries to get simplier the way you responde in your
14
14
  API
@@ -29,8 +29,10 @@ files:
29
29
  - app/serializers/item_serializer.rb
30
30
  - config/database.yml
31
31
  - lib/jsonapi_responses.rb
32
+ - lib/jsonapi_responses/engine.rb
32
33
  - lib/jsonapi_responses/respondable.rb
33
34
  - lib/jsonapi_responses/serializable.rb
35
+ - lib/jsonapi_responses/user_context_provider.rb
34
36
  - lib/jsonapi_responses/version.rb
35
37
  homepage: https://www.oortega.dev/gems
36
38
  licenses: