aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorStephen Finucane <stephen@that.guru>2019-09-08 23:31:47 +0100
committerStephen Finucane <stephen@that.guru>2019-10-17 18:51:02 +0100
commit9795ec7505d78de5819ef3e1ebbd446f4010d7aa (patch)
tree8a390065ee9c7fa00c2d2e26ca946a3728fb6a01 /docs
parent3589c00edd0a5e5214196da22a5af4848cb9023b (diff)
downloadpatchwork-9795ec7505d78de5819ef3e1ebbd446f4010d7aa.tar
patchwork-9795ec7505d78de5819ef3e1ebbd446f4010d7aa.tar.gz
REST: Allow creating, updating, deleting of bundles
Allow users to create a new bundle, change the name, public flag and patches of an existing bundle, and delete an existing bundle. Some small nits with existing tests are resolved. Signed-off-by: Stephen Finucane <stephen@that.guru> Closes: #316
Diffstat (limited to 'docs')
-rw-r--r--docs/api/schemas/latest/patchwork.yaml166
-rw-r--r--docs/api/schemas/patchwork.j2177
-rw-r--r--docs/api/schemas/v1.0/patchwork.yaml5
-rw-r--r--docs/api/schemas/v1.1/patchwork.yaml5
-rw-r--r--docs/api/schemas/v1.2/patchwork.yaml166
5 files changed, 512 insertions, 7 deletions
diff --git a/docs/api/schemas/latest/patchwork.yaml b/docs/api/schemas/latest/patchwork.yaml
index 45a6118..4696900 100644
--- a/docs/api/schemas/latest/patchwork.yaml
+++ b/docs/api/schemas/latest/patchwork.yaml
@@ -1,5 +1,6 @@
# DO NOT EDIT THIS FILE. It is generated from a template. Changes should be
-# proposed against the template.
+# proposed against the template and updated files generated using the
+# 'generate-schemas.py' tool
---
openapi: '3.0.0'
info:
@@ -72,6 +73,35 @@ paths:
$ref: '#/components/schemas/Bundle'
tags:
- bundles
+ post:
+ description: Create a bundle.
+ operationId: bundles_create
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ requestBody:
+ $ref: '#/components/requestBodies/Bundle'
+ responses:
+ '201':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Bundle'
+ '400':
+ description: Invalid Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBundleCreateUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - bundles
/api/bundles/{id}/:
get:
description: Show a bundle.
@@ -99,6 +129,92 @@ paths:
$ref: '#/components/schemas/Error'
tags:
- bundles
+ patch:
+ description: Update a bundle (partial).
+ operationId: bundles_partial_update
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this bundle.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/Bundle'
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Bundle'
+ '400':
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBundleCreateUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - bundles
+ put:
+ description: Update a bundle.
+ operationId: bundles_update
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this bundle.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/Bundle'
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Bundle'
+ '400':
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBundleCreateUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - bundles
/api/covers/:
get:
description: List cover letters.
@@ -1131,6 +1247,18 @@ components:
schema:
type: string
requestBodies:
+ Bundle:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BundleCreateUpdate'
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/BundleCreateUpdate'
+ application/x-www-form-urlencoded:
+ schema:
+ $ref: '#/components/schemas/BundleCreateUpdate'
Check:
required: true
content:
@@ -1251,10 +1379,10 @@ components:
allOf:
- $ref: '#/components/schemas/UserEmbedded'
patches:
+ title: Patches
type: array
items:
$ref: '#/components/schemas/PatchEmbedded'
- readOnly: true
uniqueItems: true
public:
title: Public
@@ -1264,6 +1392,25 @@ components:
type: string
format: uri
readOnly: true
+ BundleCreateUpdate:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ title: Name
+ type: string
+ minLength: 1
+ maxLength: 50
+ patches:
+ title: Patches
+ type: array
+ items:
+ type: integer
+ uniqueItems: true
+ public:
+ title: Public
+ type: boolean
Check:
type: object
properties:
@@ -1961,6 +2108,7 @@ components:
cover_letter:
$ref: '#/components/schemas/CoverLetterEmbedded'
patches:
+ title: Patches
type: array
items:
$ref: '#/components/schemas/PatchEmbedded'
@@ -2307,6 +2455,20 @@ components:
title: Detail
type: string
readOnly: true
+ ErrorBundleCreateUpdate:
+ type: object
+ properties:
+ name:
+ title: Name
+ type: string
+ readOnly: true
+ patches:
+ title: Patches
+ type: string
+ readOnly: true
+ public:
+ title: Public
+ type: string
ErrorCheckCreate:
type: object
properties:
diff --git a/docs/api/schemas/patchwork.j2 b/docs/api/schemas/patchwork.j2
index 16d85a3..4fc100e 100644
--- a/docs/api/schemas/patchwork.j2
+++ b/docs/api/schemas/patchwork.j2
@@ -1,6 +1,7 @@
{# You can obviously ignore the below when editing this template #}
# DO NOT EDIT THIS FILE. It is generated from a template. Changes should be
-# proposed against the template.
+# proposed against the template and updated files generated using the
+# 'generate-schemas.py' tool
---
openapi: '3.0.0'
info:
@@ -73,6 +74,37 @@ paths:
$ref: '#/components/schemas/Bundle'
tags:
- bundles
+{% if version >= (1, 2) %}
+ post:
+ description: Create a bundle.
+ operationId: bundles_create
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ requestBody:
+ $ref: '#/components/requestBodies/Bundle'
+ responses:
+ '201':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Bundle'
+ '400':
+ description: Invalid Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBundleCreateUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - bundles
+{% endif %}
/api/{{ version_url }}bundles/{id}/:
get:
description: Show a bundle.
@@ -100,6 +132,94 @@ paths:
$ref: '#/components/schemas/Error'
tags:
- bundles
+{% if version >= (1, 2) %}
+ patch:
+ description: Update a bundle (partial).
+ operationId: bundles_partial_update
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this bundle.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/Bundle'
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Bundle'
+ '400':
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBundleCreateUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - bundles
+ put:
+ description: Update a bundle.
+ operationId: bundles_update
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this bundle.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/Bundle'
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Bundle'
+ '400':
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBundleCreateUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - bundles
+{% endif %}
/api/{{ version_url }}covers/:
get:
description: List cover letters.
@@ -1132,6 +1252,20 @@ components:
schema:
type: string
requestBodies:
+{% if version >= (1, 2) %}
+ Bundle:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BundleCreateUpdate'
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/BundleCreateUpdate'
+ application/x-www-form-urlencoded:
+ schema:
+ $ref: '#/components/schemas/BundleCreateUpdate'
+{% endif %}
Check:
required: true
content:
@@ -1254,10 +1388,13 @@ components:
allOf:
- $ref: '#/components/schemas/UserEmbedded'
patches:
+ title: Patches
type: array
items:
$ref: '#/components/schemas/PatchEmbedded'
+{% if version < (1, 2) %}
readOnly: true
+{% endif %}
uniqueItems: true
public:
title: Public
@@ -1267,6 +1404,27 @@ components:
type: string
format: uri
readOnly: true
+{% if version >= (1, 2) %}
+ BundleCreateUpdate:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ title: Name
+ type: string
+ minLength: 1
+ maxLength: 50
+ patches:
+ title: Patches
+ type: array
+ items:
+ type: integer
+ uniqueItems: true
+ public:
+ title: Public
+ type: boolean
+{% endif %}
Check:
type: object
properties:
@@ -1988,6 +2146,7 @@ components:
cover_letter:
$ref: '#/components/schemas/CoverLetterEmbedded'
patches:
+ title: Patches
type: array
items:
$ref: '#/components/schemas/PatchEmbedded'
@@ -2346,6 +2505,22 @@ components:
title: Detail
type: string
readOnly: true
+{% if version >= (1, 2) %}
+ ErrorBundleCreateUpdate:
+ type: object
+ properties:
+ name:
+ title: Name
+ type: string
+ readOnly: true
+ patches:
+ title: Patches
+ type: string
+ readOnly: true
+ public:
+ title: Public
+ type: string
+{% endif %}
ErrorCheckCreate:
type: object
properties:
diff --git a/docs/api/schemas/v1.0/patchwork.yaml b/docs/api/schemas/v1.0/patchwork.yaml
index 02f3a15..e6adfdd 100644
--- a/docs/api/schemas/v1.0/patchwork.yaml
+++ b/docs/api/schemas/v1.0/patchwork.yaml
@@ -1,5 +1,6 @@
# DO NOT EDIT THIS FILE. It is generated from a template. Changes should be
-# proposed against the template.
+# proposed against the template and updated files generated using the
+# 'generate-schemas.py' tool
---
openapi: '3.0.0'
info:
@@ -1246,6 +1247,7 @@ components:
allOf:
- $ref: '#/components/schemas/UserEmbedded'
patches:
+ title: Patches
type: array
items:
$ref: '#/components/schemas/PatchEmbedded'
@@ -1877,6 +1879,7 @@ components:
cover_letter:
$ref: '#/components/schemas/CoverLetterEmbedded'
patches:
+ title: Patches
type: array
items:
$ref: '#/components/schemas/PatchEmbedded'
diff --git a/docs/api/schemas/v1.1/patchwork.yaml b/docs/api/schemas/v1.1/patchwork.yaml
index 0c086ed..6af697c 100644
--- a/docs/api/schemas/v1.1/patchwork.yaml
+++ b/docs/api/schemas/v1.1/patchwork.yaml
@@ -1,5 +1,6 @@
# DO NOT EDIT THIS FILE. It is generated from a template. Changes should be
-# proposed against the template.
+# proposed against the template and updated files generated using the
+# 'generate-schemas.py' tool
---
openapi: '3.0.0'
info:
@@ -1251,6 +1252,7 @@ components:
allOf:
- $ref: '#/components/schemas/UserEmbedded'
patches:
+ title: Patches
type: array
items:
$ref: '#/components/schemas/PatchEmbedded'
@@ -1928,6 +1930,7 @@ components:
cover_letter:
$ref: '#/components/schemas/CoverLetterEmbedded'
patches:
+ title: Patches
type: array
items:
$ref: '#/components/schemas/PatchEmbedded'
diff --git a/docs/api/schemas/v1.2/patchwork.yaml b/docs/api/schemas/v1.2/patchwork.yaml
index 3a96aa3..2ced470 100644
--- a/docs/api/schemas/v1.2/patchwork.yaml
+++ b/docs/api/schemas/v1.2/patchwork.yaml
@@ -1,5 +1,6 @@
# DO NOT EDIT THIS FILE. It is generated from a template. Changes should be
-# proposed against the template.
+# proposed against the template and updated files generated using the
+# 'generate-schemas.py' tool
---
openapi: '3.0.0'
info:
@@ -72,6 +73,35 @@ paths:
$ref: '#/components/schemas/Bundle'
tags:
- bundles
+ post:
+ description: Create a bundle.
+ operationId: bundles_create
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ requestBody:
+ $ref: '#/components/requestBodies/Bundle'
+ responses:
+ '201':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Bundle'
+ '400':
+ description: Invalid Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBundleCreateUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - bundles
/api/1.2/bundles/{id}/:
get:
description: Show a bundle.
@@ -99,6 +129,92 @@ paths:
$ref: '#/components/schemas/Error'
tags:
- bundles
+ patch:
+ description: Update a bundle (partial).
+ operationId: bundles_partial_update
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this bundle.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/Bundle'
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Bundle'
+ '400':
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBundleCreateUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - bundles
+ put:
+ description: Update a bundle.
+ operationId: bundles_update
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this bundle.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/Bundle'
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Bundle'
+ '400':
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBundleCreateUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - bundles
/api/1.2/covers/:
get:
description: List cover letters.
@@ -1131,6 +1247,18 @@ components:
schema:
type: string
requestBodies:
+ Bundle:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BundleCreateUpdate'
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/BundleCreateUpdate'
+ application/x-www-form-urlencoded:
+ schema:
+ $ref: '#/components/schemas/BundleCreateUpdate'
Check:
required: true
content:
@@ -1251,10 +1379,10 @@ components:
allOf:
- $ref: '#/components/schemas/UserEmbedded'
patches:
+ title: Patches
type: array
items:
$ref: '#/components/schemas/PatchEmbedded'
- readOnly: true
uniqueItems: true
public:
title: Public
@@ -1264,6 +1392,25 @@ components:
type: string
format: uri
readOnly: true
+ BundleCreateUpdate:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ title: Name
+ type: string
+ minLength: 1
+ maxLength: 50
+ patches:
+ title: Patches
+ type: array
+ items:
+ type: integer
+ uniqueItems: true
+ public:
+ title: Public
+ type: boolean
Check:
type: object
properties:
@@ -1961,6 +2108,7 @@ components:
cover_letter:
$ref: '#/components/schemas/CoverLetterEmbedded'
patches:
+ title: Patches
type: array
items:
$ref: '#/components/schemas/PatchEmbedded'
@@ -2307,6 +2455,20 @@ components:
title: Detail
type: string
readOnly: true
+ ErrorBundleCreateUpdate:
+ type: object
+ properties:
+ name:
+ title: Name
+ type: string
+ readOnly: true
+ patches:
+ title: Patches
+ type: string
+ readOnly: true
+ public:
+ title: Public
+ type: string
ErrorCheckCreate:
type: object
properties: