Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions rails/app/controllers/api/contracts_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
module Api
class ContractsController < ApplicationController
def index
@errors = []

if params[:created_at_from].blank? || params[:created_at_to].blank?
@errors << '検索期間を指定してください。'
end

if params[:created_at_from].present? && params[:created_at_to].present?
if Time.zone.parse(params[:created_at_to]) - Time.zone.parse(params[:created_at_from]) > 1.year
@errors << '検索期間は1年以内で指定してください。'
end
end


return render json: { errors: @errors }, status: :bad_request if @errors.present?

@contracts = current_user.contracts.where(created_at: Time.zone.parse(params[:created_at_from])..Time.zone.parse(params[:created_at_to]))
@contracts = @contracts.where(status: params[:status]) if params[:status].present?

render json: @contracts.map do |contract|
{
id: contract.id,
document_path: contracts_pdf_path(contract),
user_name: contract.user.name,
status: contract.status,
signers: contract.signers.map { |signer| { id: signer.id, name: signer.name } },
created_at: contract.created_at,
updated_at: contract.updated_at
}
end
end

def pdf
@contract = Contract.find(params[:id])

send_file @contract.document.file,
type: 'application/pdf',
disposition: 'inline',
filename: "#{@contract.document.title}.pdf"
end
end
end