diff --git a/app/controllers/v1/users_controller.rb b/app/controllers/v1/users_controller.rb index 6405a2a8f37c861d02efd0cd4e8e5b74f46257f4..cd094fab868b8e06bfd735a68e5ef13daf9483f8 100644 --- a/app/controllers/v1/users_controller.rb +++ b/app/controllers/v1/users_controller.rb @@ -6,7 +6,7 @@ class V1::UsersController < ApplicationController include ::SubjectableController before_action :set_user, only: [:show, :update, :destroy, :following, :own_reviews, :received_reviews, :followers] - before_action :authenticate_user!, only: [:create, :update, :destroy, :following, :own_reviews, :received_reviews, :followers] + before_action :authenticate_user!, only: [:create, :update, :destroy, :following, :own_reviews, :received_reviews, :followers, :submitter_request] before_action :authorize_user, only: [:own_reviews, :received_reviews, :update, :destroy] # GET /v1/users @@ -58,6 +58,13 @@ class V1::UsersController < ApplicationController render status: :ok end + # POST /v1/users/submitter_request + # POST /v1/users/submitter_request.json + def submitter_request + current_user.update(submitter_request: User.submitter_requests[:requested]) + render status: :ok + end + def following type = params[:object_type] is_current = (@user.id == current_user.id) unless current_user.nil? diff --git a/app/models/user.rb b/app/models/user.rb index 207a797fc3cb02f236661c5924f88db7a1f05c58..118478ace3764784bf52ac8c3fa63582ef5a4457 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -78,6 +78,8 @@ class User < ApplicationRecord validates :terms_of_service, acceptance: true + enum submitter_request: { default: 0, requested: 1, accepted: 2, rejected: 3 } + searchkick language: 'brazilian', match: :word_start, searchable: [:name], callbacks: :async acts_as_paranoid diff --git a/app/serializers/user_devise_serializer.rb b/app/serializers/user_devise_serializer.rb index c2547fc4439fcb49e506e61132764de9fe30b905..f64debf65dc79ae0f322c908f6fa96bbe7318fe0 100644 --- a/app/serializers/user_devise_serializer.rb +++ b/app/serializers/user_devise_serializer.rb @@ -1,15 +1,15 @@ class UserDeviseSerializer < ActiveModel::Serializer - + def avatar_file_name object.avatar.url - end + end def cover_file_name object.cover.url end - attributes :id, :email, :provider, :avatar_file_name, :avatar_content_type, :uid, :name, :avatar_file_size, :avatar_updated_at, + attributes :id, :email, :provider, :avatar_file_name, :avatar_content_type, :uid, :name, :submitter_request, :avatar_file_size, :avatar_updated_at, :bookmarks_count, :user_category_id, :score, :follows_count, :deleted_at, :description, :likes_count, :learning_objects_count, :collections_count, :cover_file_name, :cover_content_type, :cover_file_size, :cover_updated_at end diff --git a/app/serializers/user_serializer.rb b/app/serializers/user_serializer.rb index 8a840883fb6e311d21280abf4e0a81735a26cd22..ef205bbda81b60c7e31e02e35416abe43eada857 100644 --- a/app/serializers/user_serializer.rb +++ b/app/serializers/user_serializer.rb @@ -17,6 +17,6 @@ class UserSerializer < ActiveModel::Serializer object.learning_objects.where('state = ?', LearningObject.states[:published]).count end - attributes :id, :email, :provider, :name, :description, :education, :score, :cover, :role_ids, :institution_ids, :avatar, :likes_count, :followed, :complained, :follows_count, :learning_objects_count, :collections_count, :created_at, :updated_at + attributes :id, :email, :provider, :name, :description, :submitter_request, :education, :score, :cover, :role_ids, :institution_ids, :avatar, :likes_count, :followed, :complained, :follows_count, :learning_objects_count, :collections_count, :created_at, :updated_at has_many :subjects end diff --git a/db/migrate/20170703175829_add_submitter_request_to_users.rb b/db/migrate/20170703175829_add_submitter_request_to_users.rb new file mode 100644 index 0000000000000000000000000000000000000000..305eab65145b3761c83c26daafa1b5b2292fa2c1 --- /dev/null +++ b/db/migrate/20170703175829_add_submitter_request_to_users.rb @@ -0,0 +1,5 @@ +class AddSubmitterRequestToUsers < ActiveRecord::Migration[5.0] + def change + add_column :users, :submitter_request, :integer, default: 0 + end +end