decline submission

This commit is contained in:
Pete Matsyburka
2024-08-21 09:22:59 +03:00
parent 96cf228e74
commit 2764a18252
25 changed files with 439 additions and 28 deletions
+6 -2
View File
@@ -7,7 +7,7 @@ module Submissions
methods: %i[audit_log_url],
include: {
submitters: { only: %i[id slug uuid name email phone
completed_at opened_at sent_at
completed_at opened_at sent_at declined_at
created_at updated_at external_id metadata],
methods: %i[status application_key] },
template: { only: %i[id name external_id created_at updated_at],
@@ -41,7 +41,11 @@ module Submissions
json[:completed_at] = last_submitter.completed_at
else
json[:documents] = []
json[:status] = submission.expired? ? 'expired' : 'pending'
json[:status] = if submitters.any?(&:declined_at?)
'declined'
else
submission.expired? ? 'expired' : 'pending'
end
json[:completed_at] = nil
end
+1 -1
View File
@@ -3,7 +3,7 @@
module Submitters
module SerializeForApi
SERIALIZE_PARAMS = {
only: %i[id slug uuid name email phone completed_at external_id
only: %i[id slug uuid name email phone completed_at declined_at external_id
submission_id metadata opened_at sent_at created_at updated_at],
methods: %i[status application_key]
}.freeze
+14 -2
View File
@@ -5,7 +5,7 @@ module Submitters
SERIALIZE_PARAMS = {
methods: %i[status application_key],
only: %i[id submission_id email phone name ua ip sent_at opened_at
completed_at created_at updated_at external_id metadata]
completed_at declined_at created_at updated_at external_id metadata]
}.freeze
module_function
@@ -34,7 +34,7 @@ module Submitters
methods: %i[folder_name]),
'submission' => {
**submitter.submission.slice(:id, :audit_log_url, :created_at),
status: submitter.submission.submitters.all?(&:completed_at?) ? 'completed' : 'pending',
status: build_submission_status(submitter.submission),
url: r.submissions_preview_url(submitter.submission.slug, **Docuseal.default_url_options)
})
end
@@ -83,6 +83,18 @@ module Submitters
end
end
def build_submission_status(submission)
submitters = submission.submitters
if submitters.all?(&:completed_at?)
'completed'
elsif submitters.any?(&:declined_at?)
'declined'
else
submission.expired? ? 'expired' : 'pending'
end
end
def build_documents_array(submitter)
submitter.documents.map do |attachment|
{ name: attachment.filename.base, url: rails_storage_proxy_url(attachment) }