Skip to content

Commit

Permalink
Merge pull request #2333 from nextcloud/feat/reorder-options-backend
Browse files Browse the repository at this point in the history
feat: Allow to reorder options for "multiple" question type in backend
  • Loading branch information
Chartman123 authored Oct 4, 2024
2 parents 683a519 + 7aba08d commit a692d13
Show file tree
Hide file tree
Showing 12 changed files with 363 additions and 106 deletions.
70 changes: 35 additions & 35 deletions appinfo/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
// CORS Preflight
['name' => 'api#preflightedCors', 'url' => $apiBase . '{path}', 'verb' => 'OPTIONS', 'requirements' => [
'path' => '.+',
'apiVersion' => 'v2(\.[1-4])?|v3'
'apiVersion' => 'v2(\.[1-5])?|v3'
]],

// API routes v3
Expand All @@ -84,7 +84,7 @@
// ['name' => 'api#getOption', 'url' => $apiBase . 'forms/{formId}/questions/{questionId}/options/{optionId}', 'verb' => 'GET', 'requirements' => $requirements_v3],
['name' => 'api#updateOption', 'url' => $apiBase . 'forms/{formId}/questions/{questionId}/options/{optionId}', 'verb' => 'PATCH', 'requirements' => $requirements_v3],
['name' => 'api#deleteOption', 'url' => $apiBase . 'forms/{formId}/questions/{questionId}/options/{optionId}', 'verb' => 'DELETE', 'requirements' => $requirements_v3],
// ['name' => 'api#reorderOptions', 'url' => $apiBase . 'forms/{formId}/questions/{questionId}/options', 'verb' => 'PATCH', 'requirements' => $requirements_v3],
['name' => 'api#reorderOptions', 'url' => $apiBase . 'forms/{formId}/questions/{questionId}/options', 'verb' => 'PATCH', 'requirements' => $requirements_v3],

// Shares
// ['name' => 'shareApi#getUserShares', 'url' => $apiBase . 'shares', 'verb' => 'GET', 'requirements' => $requirements_v3],
Expand All @@ -107,113 +107,113 @@
// Legacy v2 routes (TODO: remove with Forms v5)
// Forms
['name' => 'api#getFormsLegacy', 'url' => $apiBase . 'forms', 'verb' => 'GET', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?'
'apiVersion' => 'v2(\.[1-5])?'
]],
['name' => 'api#newFormLegacy', 'url' => $apiBase . 'form', 'verb' => 'POST', 'requirements' => [
'apiVersion_path' => 'v2(\.[1-4])?'
'apiVersion_path' => 'v2(\.[1-5])?'
]],
['name' => 'api#getFormLegacy', 'url' => $apiBase . 'form/{id}', 'verb' => 'GET', 'requirements' => [
'apiVersion_path' => 'v2(\.[1-4])?',
'apiVersion_path' => 'v2(\.[1-5])?',
'id' => '\d+'
]],
['name' => 'api#cloneFormLegacy', 'url' => $apiBase . 'form/clone/{id}', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?',
'apiVersion' => 'v2(\.[1-5])?',
'id' => '\d+'
]],
['name' => 'api#updateFormLegacy', 'url' => $apiBase . 'form/update', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?'
'apiVersion' => 'v2(\.[1-5])?'
]],
['name' => 'api#updateFormLegacy', 'url' => $apiBase . 'form/update', 'verb' => 'PATCH', 'requirements' => [
'apiVersion' => 'v2\.[2-4]'
'apiVersion' => 'v2\.[2-5]'
]],
['name' => 'api#transferOwnerLegacy', 'url' => $apiBase . 'form/transfer', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2\.[2-4]'
'apiVersion' => 'v2\.[2-5]'
]],
['name' => 'api#deleteFormLegacy', 'url' => $apiBase . 'form/{id}', 'verb' => 'DELETE', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?',
'apiVersion' => 'v2(\.[1-5])?',
'id' => '\d+'
]],
['name' => 'api#getPartialFormLegacy', 'url' => $apiBase . 'partial_form/{hash}', 'verb' => 'GET', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?',
'apiVersion' => 'v2(\.[1-5])?',
'hash' => '[a-zA-Z0-9]{16}'
]],
['name' => 'api#getSharedFormsLegacy', 'url' => $apiBase . 'shared_forms', 'verb' => 'GET', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?'
'apiVersion' => 'v2(\.[1-5])?'
]],

// Questions
['name' => 'api#newQuestionLegacy', 'url' => $apiBase . 'question', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?'
'apiVersion' => 'v2(\.[1-5])?'
]],
// TODO: Remove POST in next API release
['name' => 'api#updateQuestionLegacy', 'url' => $apiBase . 'question/update', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?'
'apiVersion' => 'v2(\.[1-5])?'
]],
['name' => 'api#updateQuestionLegacy', 'url' => $apiBase . 'question/update', 'verb' => 'PATCH', 'requirements' => [
'apiVersion' => 'v2\.[2-4]'
'apiVersion' => 'v2\.[2-5]'
]],
// TODO: Remove POST in next API release
['name' => 'api#reorderQuestionsLegacy', 'url' => $apiBase . 'question/reorder', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?'
'apiVersion' => 'v2(\.[1-5])?'
]],
['name' => 'api#reorderQuestionsLegacy', 'url' => $apiBase . 'question/reorder', 'verb' => 'PUT', 'requirements' => [
'apiVersion' => 'v2\.[2-4]'
'apiVersion' => 'v2\.[2-5]'
]],
['name' => 'api#deleteQuestionLegacy', 'url' => $apiBase . 'question/{id}', 'verb' => 'DELETE', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?',
'apiVersion' => 'v2(\.[1-5])?',
'id' => '\d+'
]],
['name' => 'api#cloneQuestionLegacy', 'url' => $apiBase . 'question/clone/{id}', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2\.[3-4]',
'apiVersion' => 'v2\.[3-5]',
'id' => '\d+'
]],

// Options
['name' => 'api#newOptionLegacy', 'url' => $apiBase . 'option', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?'
'apiVersion' => 'v2(\.[1-5])?'
]],
// TODO: Remove POST in next API release
['name' => 'api#updateOptionLegacy', 'url' => $apiBase . 'option/update', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?'
'apiVersion' => 'v2(\.[1-5])?'
]],
['name' => 'api#updateOptionLegacy', 'url' => $apiBase . 'option/update', 'verb' => 'PATCH', 'requirements' => [
'apiVersion' => 'v2\.[2-4]'
'apiVersion' => 'v2\.[2-5]'
]],
['name' => 'api#deleteOptionLegacy', 'url' => $apiBase . 'option/{id}', 'verb' => 'DELETE', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?',
'apiVersion' => 'v2(\.[1-5])?',
'id' => '\d+'
]],

// Shares
['name' => 'shareApi#newShareLegacy', 'url' => $apiBase . 'share', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?'
'apiVersion' => 'v2(\.[1-5])?'
]],
['name' => 'shareApi#deleteShareLegacy', 'url' => $apiBase . 'share/{id}', 'verb' => 'DELETE', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?',
'apiVersion' => 'v2(\.[1-5])?',
'id' => '\d+'
]],
// TODO: Remove POST in next API release
['name' => 'shareApi#updateShareLegacy', 'url' => $apiBase . 'share/update', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2\.[1-4]'
'apiVersion' => 'v2\.[1-5]'
]],
['name' => 'shareApi#updateShareLegacy', 'url' => $apiBase . 'share/update', 'verb' => 'PATCH', 'requirements' => [
'apiVersion' => 'v2\.[2-4]'
'apiVersion' => 'v2\.[2-5]'
]],

// Submissions
['name' => 'api#getSubmissionsLegacy', 'url' => $apiBase . 'submissions/{hash}', 'verb' => 'GET', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?',
'apiVersion' => 'v2(\.[1-5])?',
'hash' => '[a-zA-Z0-9]{16}'
]],
['name' => 'api#exportSubmissionsLegacy', 'url' => $apiBase . 'submissions/export/{hash}', 'verb' => 'GET', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?',
'apiVersion' => 'v2(\.[1-5])?',
'hash' => '[a-zA-Z0-9]{16}'
]],
['name' => 'api#exportSubmissionsToCloudLegacy', 'url' => $apiBase . 'submissions/export', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?'
'apiVersion' => 'v2(\.[1-5])?'
]],
['name' => 'api#deleteAllSubmissionsLegacy', 'url' => $apiBase . 'submissions/{formId}', 'verb' => 'DELETE', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?',
'apiVersion' => 'v2(\.[1-5])?',
'formId' => '\d+'
]],
['name' => 'api#uploadFilesLegacy', 'url' => $apiBase . 'uploadFiles/{formId}/{questionId}', 'verb' => 'POST', 'requirements' => [
Expand All @@ -222,19 +222,19 @@
'questionId' => '\d+'
]],
['name' => 'api#insertSubmissionLegacy', 'url' => $apiBase . 'submission/insert', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?'
'apiVersion' => 'v2(\.[1-5])?'
]],
['name' => 'api#deleteSubmissionLegacy', 'url' => $apiBase . 'submission/{id}', 'verb' => 'DELETE', 'requirements' => [
'apiVersion' => 'v2(\.[1-4])?',
'apiVersion' => 'v2(\.[1-5])?',
'id' => '\d+'
]],
// Submissions linking with file in cloud
['name' => 'api#linkFileLegacy', 'url' => $apiBase . 'form/link/{fileFormat}', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2.4',
'apiVersion' => 'v2.[4-5]',
'fileFormat' => 'csv|ods|xlsx'
]],
['name' => 'api#unlinkFileLegacy', 'url' => $apiBase . 'form/unlink', 'verb' => 'POST', 'requirements' => [
'apiVersion' => 'v2.4',
'apiVersion' => 'v2.[4-5]',
]]
]
];
Loading

0 comments on commit a692d13

Please sign in to comment.