From 07aefa79eb6ccfdab2a37cff624863dcce35bec9 Mon Sep 17 00:00:00 2001 From: yystopf Date: Wed, 2 Nov 2022 14:21:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=90=8E=E5=8F=B0=E7=AE=A1=E7=90=86=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E7=B2=BE=E9=80=89=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admins/projects/shared/_list.html.erb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/views/admins/projects/shared/_list.html.erb b/app/views/admins/projects/shared/_list.html.erb index 720b08dac..eb0e61255 100644 --- a/app/views/admins/projects/shared/_list.html.erb +++ b/app/views/admins/projects/shared/_list.html.erb @@ -5,7 +5,6 @@ ID 项目名称 公开 - 精选 推荐 Issues 资源 @@ -27,7 +26,6 @@ <%= link_to(project.name, "/#{project&.owner&.login}/#{project.identifier}", target: '_blank') %> <%= project.is_public ? '√' : '' %> - <%= project.is_pinned ? '√' : '' %> <%= project.recommend ? '√' : '' %> <%= project.issues.size %> <%= project.attachments.size %> @@ -40,8 +38,6 @@ <%= project.created_on&.strftime('%Y-%m-%d %H:%M') %> <% if project.is_public %> - <%= javascript_void_link '精选', class: 'action pinned-action', data: { id: project.id }, style: project.is_pinned ? 'display: none;' : '' %> - <%= javascript_void_link '取消精选', class: 'action unpinned-action', data: { id: project.id }, style: project.is_pinned ? '' : 'display: none;' %> <%= javascript_void_link '推荐', class: 'action recommend-action', data: { id: project.id }, style: project.recommend ? 'display: none;' : '' %> <%= javascript_void_link '取消推荐', class: 'action unrecommend-action', data: { id: project.id }, style: project.recommend ? '' : 'display: none;' %> <%= link_to "设置推荐等级", edit_admins_project_path(project.id), remote: true, class: "action edit-recommend-action", style: project.recommend ? '' : 'display: none;' %> From 3e5c1da2c5330175407b1eaaabaf12cadbee112a Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 8 Nov 2022 13:27:46 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=8F=8D?= =?UTF-8?q?=E9=A6=88=E6=84=8F=E8=A7=81=E6=A8=A1=E5=9E=8B=E5=8F=8A=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/v1/users/feedbacks_controller.rb | 16 ++++++++++++ app/models/feedback.rb | 20 ++++++++++++++ .../api/v1/users/feedbacks/create_service.rb | 26 +++++++++++++++++++ config/locales/forms/api_v1_service.zh-CN.yml | 5 ++++ config/routes/api.rb | 1 + db/migrate/20221108024322_create_feedbacks.rb | 10 +++++++ 6 files changed, 78 insertions(+) create mode 100644 app/controllers/api/v1/users/feedbacks_controller.rb create mode 100644 app/models/feedback.rb create mode 100644 app/services/api/v1/users/feedbacks/create_service.rb create mode 100644 config/locales/forms/api_v1_service.zh-CN.yml create mode 100644 db/migrate/20221108024322_create_feedbacks.rb diff --git a/app/controllers/api/v1/users/feedbacks_controller.rb b/app/controllers/api/v1/users/feedbacks_controller.rb new file mode 100644 index 000000000..4e79de7bd --- /dev/null +++ b/app/controllers/api/v1/users/feedbacks_controller.rb @@ -0,0 +1,16 @@ +class Api::V1::Users::FeedbacksController < Api::V1::BaseController + + before_action :load_observe_user + before_action :check_auth_for_observe_user + + def create + @result = Api::V1::Users::Feedbacks::CreateService.call(@observe_user, feedback_params) + return render_error("反馈意见创建失败.") if @result.nil? + return render_ok + end + + private + def feedback_params + params.permit(:content) + end +end \ No newline at end of file diff --git a/app/models/feedback.rb b/app/models/feedback.rb new file mode 100644 index 000000000..3cb7e5ea3 --- /dev/null +++ b/app/models/feedback.rb @@ -0,0 +1,20 @@ +# == Schema Information +# +# Table name: feedbacks +# +# id :integer not null, primary key +# user_id :integer +# content :text(65535) +# created_at :datetime not null +# updated_at :datetime not null +# +# Indexes +# +# index_feedbacks_on_user_id (user_id) +# + +class Feedback < ApplicationRecord + + belongs_to :user + +end diff --git a/app/services/api/v1/users/feedbacks/create_service.rb b/app/services/api/v1/users/feedbacks/create_service.rb new file mode 100644 index 000000000..2db4baac2 --- /dev/null +++ b/app/services/api/v1/users/feedbacks/create_service.rb @@ -0,0 +1,26 @@ +class Api::V1::Users::Feedbacks::CreateService < ApplicationService + include ActiveModel::Model + + attr_reader :user, :content + attr_accessor :feedback + + validates :content, presence: true + + def initialize(user, params) + @user = user + @content = params[:content] + end + + def call + raise Error, errors.full_messages.join(",") unless valid? + + begin + @feedback = Feedback.new(user: user, content: content) + @feedback.save! + + return @feedback.valid? ? @feedback : nil + rescue + raise Error, "服务器错误,请联系系统管理员!" + end + end +end \ No newline at end of file diff --git a/config/locales/forms/api_v1_service.zh-CN.yml b/config/locales/forms/api_v1_service.zh-CN.yml new file mode 100644 index 000000000..268cdc5c4 --- /dev/null +++ b/config/locales/forms/api_v1_service.zh-CN.yml @@ -0,0 +1,5 @@ +'zh-CN': + activemodel: + attributes: + api/v1/users/feedbacks/create_service: + content: "反馈意见" \ No newline at end of file diff --git a/config/routes/api.rb b/config/routes/api.rb index ab098b1dc..1c55d59d9 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -13,6 +13,7 @@ defaults format: :json do end scope module: :users do resources :projects, only: [:index] + resources :feedbacks, only: [:create] end scope ':repo' do diff --git a/db/migrate/20221108024322_create_feedbacks.rb b/db/migrate/20221108024322_create_feedbacks.rb new file mode 100644 index 000000000..316df6b05 --- /dev/null +++ b/db/migrate/20221108024322_create_feedbacks.rb @@ -0,0 +1,10 @@ +class CreateFeedbacks < ActiveRecord::Migration[5.2] + def change + create_table :feedbacks do |t| + t.references :user + t.text :content + + t.timestamps + end + end +end