# frozen_string_literal: true
class NotesController < ApplicationController
include Dmpopidor::Controllers::Notes
include ConditionalUserMailer
require "pp"
after_action :verify_authorized
respond_to :html
# def create
# @note = Note.new
# @note.user_id = note_params[:user_id]
# # ensure user has access to plan BEFORE creating/finding answer
# unless Plan.find_by(id: note_params[:plan_id]).readable_by?(@note.user_id)
# raise Pundit::NotAuthorizedError
# end
# Answer.transaction do
# @answer = Answer.find_by(
# plan_id: note_params[:plan_id],
# question_id: note_params[:question_id]
# )
# if @answer.blank?
# @answer = Answer.new
# @answer.plan_id = note_params[:plan_id]
# @answer.question_id = note_params[:question_id]
# @answer.user_id = @note.user_id
# @answer.save!
# end
# end
# @note.answer = @answer
# @note.text = note_params[:text]
# authorize @note
# @plan = @answer.plan
# @question = Question.find(note_params[:question_id])
# if @note.save
# @status = true
# answer = @note.answer
# plan = answer.plan
# owner = plan.owner
# deliver_if(recipients: owner, key: "users.new_comment") do |r|
# UserMailer.new_comment(current_user, plan, answer).deliver_now()
# end
# @notice = success_message(@note, _("created"))
# render(json: {
# "notes" => {
# "id" => note_params[:question_id],
# "html" => render_to_string(partial: "layout", locals: {
# plan: @plan,
# question: @question,
# answer: @answer
# }, formats: [:html])
# },
# "title" => {
# "id" => note_params[:question_id],
# "html" => render_to_string(partial: "title", locals: {
# answer: @answer
# }, formats: [:html])
# }
# }.to_json, status: :created)
# else
# @status = false
# @notice = failure_message(@note, _("create"))
# render json: {
# "msg" => @notice
# }.to_json, status: :bad_request
# end
# end
# def update
# @note = Note.find(params[:id])
# authorize @note
# @note.text = note_params[:text]
# @answer = @note.answer
# @question = @answer.question
# @plan = @answer.plan
# question_id = @note.answer.question_id.to_s
# if @note.update(note_params)
# @notice = success_message(@note, _("saved"))
# render(json: {
# "notes" => {
# "id" => question_id,
# "html" => render_to_string(partial: "layout", locals: {
# plan: @plan,
# question: @question,
# answer: @answer
# }, formats: [:html])
# },
# "title" => {
# "id" => question_id,
# "html" => render_to_string(partial: "title", locals: {
# answer: @answer
# }, formats: [:html])
# }
# }.to_json, status: :ok)
# else
# @notice = failure_message(@note, _("save"))
# render json: {
# "msg" => @notice
# }.to_json, status: :bad_request
# end
# end
# def archive
# @note = Note.find(params[:id])
# authorize @note
# @note.archived = true
# @note.archived_by = params[:note][:archived_by]
# @answer = @note.answer
# @question = @answer.question
# @plan = @answer.plan
# question_id = @note.answer.question_id.to_s
# if @note.update(note_params)
# @notice = success_message(@note, _("removed"))
# render(json: {
# "notes" => {
# "id" => question_id,
# "html" => render_to_string(partial: "layout", locals: {
# plan: @plan,
# question: @question,
# answer: @answer
# }, formats: [:html])
# },
# "title" => {
# "id" => question_id,
# "html" => render_to_string(partial: "title", locals: {
# answer: @answer
# }, formats: [:html])
# }
# }.to_json, status: :ok)
# else
# @notice = failure_message(@note, _("remove"))
# render json: {
# "msg" => @notice
# }.to_json, status: :bad_request
# end
# end
private
def note_params
params.require(:note)
.permit(:text, :archived_by, :user_id, :answer_id, :plan_id,
:question_id, :research_output_id)
end
end