Skip to content

Commit

Permalink
Merge pull request #1809 from nextcloud/enh/update-endpoints-put
Browse files Browse the repository at this point in the history
enh: use PUT/PATCH for updating and move to API v2.2
  • Loading branch information
susnux committed Dec 6, 2023
2 parents a7ba0c8 + 7a147d9 commit 7f5ce62
Show file tree
Hide file tree
Showing 16 changed files with 149 additions and 94 deletions.
96 changes: 71 additions & 25 deletions appinfo/routes.php
Expand Up @@ -3,6 +3,7 @@
* @copyright Copyright (c] 2017 Vinzenz Rosenkranz <vinzenz.rosenkranz@gmail.com>
*
* @author affan98 <affan98@gmail.com>
* @author Christian Hartmann <chris-hartmann@gmx.de>
* @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
* @author Jonas Rittershofer <jotoeri@users.noreply.github.com>
*
Expand Down Expand Up @@ -34,7 +35,7 @@
[
'name' => 'config#updateAppConfig',
'url' => '/config/update',
'verb' => 'POST'
'verb' => 'PATCH'
],

// Public Share Link
Expand Down Expand Up @@ -72,7 +73,7 @@
'verb' => 'OPTIONS',
'requirements' => [
'path' => '.+',
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],

Expand All @@ -82,63 +83,72 @@
'url' => '/api/{apiVersion}/forms',
'verb' => 'GET',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#newForm',
'url' => '/api/{apiVersion}/form',
'verb' => 'POST',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#getForm',
'url' => '/api/{apiVersion}/form/{id}',
'verb' => 'GET',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#cloneForm',
'url' => '/api/{apiVersion}/form/clone/{id}',
'verb' => 'POST',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
// TODO: Remove POST in next API release
[
'name' => 'api#updateForm',
'url' => '/api/{apiVersion}/form/update',
'verb' => 'POST',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#updateForm',
'url' => '/api/{apiVersion}/form/update',
'verb' => 'PATCH',
'requirements' => [
'apiVersion' => 'v2.2'
]
],
[
'name' => 'api#deleteForm',
'url' => '/api/{apiVersion}/form/{id}',
'verb' => 'DELETE',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#getPartialForm',
'url' => '/api/{apiVersion}/partial_form/{hash}',
'verb' => 'GET',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#getSharedForms',
'url' => '/api/{apiVersion}/shared_forms',
'verb' => 'GET',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],

Expand All @@ -148,31 +158,49 @@
'url' => '/api/{apiVersion}/question',
'verb' => 'POST',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
// TODO: Remove POST in next API release
[
'name' => 'api#updateQuestion',
'url' => '/api/{apiVersion}/question/update',
'verb' => 'POST',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#updateQuestion',
'url' => '/api/{apiVersion}/question/update',
'verb' => 'PATCH',
'requirements' => [
'apiVersion' => 'v2.2'
]
],
// TODO: Remove POST in next API release
[
'name' => 'api#reorderQuestions',
'url' => '/api/{apiVersion}/question/reorder',
'verb' => 'POST',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#reorderQuestions',
'url' => '/api/{apiVersion}/question/reorder',
'verb' => 'PUT',
'requirements' => [
'apiVersion' => 'v2.2'
]
],
[
'name' => 'api#deleteQuestion',
'url' => '/api/{apiVersion}/question/{id}',
'verb' => 'DELETE',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],

Expand All @@ -182,23 +210,32 @@
'url' => '/api/{apiVersion}/option',
'verb' => 'POST',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
// TODO: Remove POST in next API release
[
'name' => 'api#updateOption',
'url' => '/api/{apiVersion}/option/update',
'verb' => 'POST',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#updateOption',
'url' => '/api/{apiVersion}/option/update',
'verb' => 'PATCH',
'requirements' => [
'apiVersion' => 'v2.2'
]
],
[
'name' => 'api#deleteOption',
'url' => '/api/{apiVersion}/option/{id}',
'verb' => 'DELETE',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],

Expand All @@ -208,17 +245,18 @@
'url' => '/api/{apiVersion}/share',
'verb' => 'POST',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'shareApi#deleteShare',
'url' => '/api/{apiVersion}/share/{id}',
'verb' => 'DELETE',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
// TODO: Remove POST in next API release
[
'name' => 'shareApi#updateShare',
'url' => '/api/{apiVersion}/share/update',
Expand All @@ -227,54 +265,62 @@
'apiVersion' => 'v2.1'
]
],
[
'name' => 'shareApi#updateShare',
'url' => '/api/{apiVersion}/share/update',
'verb' => 'PATCH',
'requirements' => [
'apiVersion' => 'v2.2'
]
],

// Submissions
[
'name' => 'api#getSubmissions',
'url' => '/api/{apiVersion}/submissions/{hash}',
'verb' => 'GET',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#exportSubmissions',
'url' => '/api/{apiVersion}/submissions/export/{hash}',
'verb' => 'GET',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#exportSubmissionsToCloud',
'url' => '/api/{apiVersion}/submissions/export',
'verb' => 'POST',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#deleteAllSubmissions',
'url' => '/api/{apiVersion}/submissions/{formId}',
'verb' => 'DELETE',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#insertSubmission',
'url' => '/api/{apiVersion}/submission/insert',
'verb' => 'POST',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
[
'name' => 'api#deleteSubmission',
'url' => '/api/{apiVersion}/submission/{id}',
'verb' => 'DELETE',
'requirements' => [
'apiVersion' => 'v2(\.1)?'
'apiVersion' => 'v2(\.[1-2])?'
]
],
]
Expand Down

0 comments on commit 7f5ce62

Please sign in to comment.