summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/api/companies_controller.rb2
-rw-r--r--app/controllers/api/products_controller.rb11
-rw-r--r--app/controllers/serializers/product_serializer.rb11
-rw-r--r--app/models/product.rb10
4 files changed, 18 insertions, 16 deletions
diff --git a/app/controllers/api/companies_controller.rb b/app/controllers/api/companies_controller.rb
index 63d30c8..086ac5b 100644
--- a/app/controllers/api/companies_controller.rb
+++ b/app/controllers/api/companies_controller.rb
@@ -52,7 +52,7 @@ module Api
end
def not_found_error_message
- { error_message: "No se encontró la compañía #{params[:short_name]}"}
+ { error_message: "No se encontró la compañía #{params[:short_name]}" }
end
end
end
diff --git a/app/controllers/api/products_controller.rb b/app/controllers/api/products_controller.rb
index febb207..213fa9f 100644
--- a/app/controllers/api/products_controller.rb
+++ b/app/controllers/api/products_controller.rb
@@ -18,7 +18,7 @@ module Api
end
def create
- @product = Product.new(permitted_params)
+ @product = Product.new(object_params)
if @product.save
render json: serialized_object.serializable_hash, status: :ok
@@ -30,7 +30,7 @@ module Api
def update
@product = Product.find_by(public_id: params[:id])
- if @product.update(permitted_params)
+ if @product.update(object_params)
render json: serialized_object.serializable_hash, status: :ok
else
render json: @product.errors.full_messages, status: :unprocessable_entity
@@ -49,7 +49,7 @@ module Api
private
def serialized_object
- Serializers::ProductSerializer(@product).new
+ Serializers::ProductSerializer.new(@product)
end
def serialized_collection
@@ -59,5 +59,10 @@ module Api
def permitted_params
params.permit(:name, :unitary_price, :bulk_price, :picture, :available_quantity, :categories, :company_id)
end
+
+ def object_params
+ categories = permitted_params[:categories].split(',')
+ permitted_params.merge(categories:, public_id: SecureRandom.hex(12))
+ end
end
end
diff --git a/app/controllers/serializers/product_serializer.rb b/app/controllers/serializers/product_serializer.rb
index 4a2158d..09310a0 100644
--- a/app/controllers/serializers/product_serializer.rb
+++ b/app/controllers/serializers/product_serializer.rb
@@ -5,17 +5,14 @@ module Serializers
class ProductSerializer < BaseSerializer
extend ActionView::RoutingUrlFor
- attributes :name, :unitary_price, :bulk_price, :available_quantity, :categories
+ attributes :name, :unitary_price, :bulk_price, :available_quantity, :categories, :company
attribute :picture do |object|
object.picture.url
end
- belongs_to :company, links: {
- self: :url,
- related: lambda(object) {
- company_path(object.company)
- }
- }
+ attribute :company do |object|
+ { name: object.company.name, short_name: object.company.short_name }
+ end
end
end \ No newline at end of file
diff --git a/app/models/product.rb b/app/models/product.rb
index 87a7a71..6e76f75 100644
--- a/app/models/product.rb
+++ b/app/models/product.rb
@@ -21,7 +21,7 @@ class Product < ApplicationRecord
has_one_attached :picture
- around_create :generate_public_id
+ # around_create :generate_public_id
serialize :categories, Array
@@ -29,9 +29,9 @@ class Product < ApplicationRecord
public_id
end
- private
+ #private
- def generate_public_id
- self.public_id = SecureRandom.hex(12)
- end
+ #def generate_public_id
+ # self.public_id = SecureRandom.hex(12)
+ #end
end