mirror of
https://github.com/nextcloud/server.git
synced 2026-04-26 00:27:49 -04:00
fix(TextToImage): Set better attribute for routes
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
This commit is contained in:
parent
ea8ab8e192
commit
a5ce35ac84
4 changed files with 340 additions and 18 deletions
|
|
@ -17,7 +17,6 @@ use OCP\AppFramework\Http\Attribute\AnonRateLimit;
|
||||||
use OCP\AppFramework\Http\Attribute\ApiRoute;
|
use OCP\AppFramework\Http\Attribute\ApiRoute;
|
||||||
use OCP\AppFramework\Http\Attribute\BruteForceProtection;
|
use OCP\AppFramework\Http\Attribute\BruteForceProtection;
|
||||||
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
|
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
|
||||||
use OCP\AppFramework\Http\Attribute\PublicPage;
|
|
||||||
use OCP\AppFramework\Http\Attribute\UserRateLimit;
|
use OCP\AppFramework\Http\Attribute\UserRateLimit;
|
||||||
use OCP\AppFramework\Http\DataResponse;
|
use OCP\AppFramework\Http\DataResponse;
|
||||||
use OCP\AppFramework\Http\FileDisplayResponse;
|
use OCP\AppFramework\Http\FileDisplayResponse;
|
||||||
|
|
@ -54,7 +53,7 @@ class TextToImageApiController extends OCSController {
|
||||||
*
|
*
|
||||||
* 200: Returns availability status
|
* 200: Returns availability status
|
||||||
*/
|
*/
|
||||||
#[PublicPage]
|
#[NoAdminRequired]
|
||||||
#[ApiRoute(verb: 'GET', url: '/is_available', root: '/text2image')]
|
#[ApiRoute(verb: 'GET', url: '/is_available', root: '/text2image')]
|
||||||
public function isAvailable(): DataResponse {
|
public function isAvailable(): DataResponse {
|
||||||
return new DataResponse([
|
return new DataResponse([
|
||||||
|
|
@ -75,9 +74,8 @@ class TextToImageApiController extends OCSController {
|
||||||
* 200: Task scheduled successfully
|
* 200: Task scheduled successfully
|
||||||
* 412: Scheduling task is not possible
|
* 412: Scheduling task is not possible
|
||||||
*/
|
*/
|
||||||
#[PublicPage]
|
#[NoAdminRequired]
|
||||||
#[UserRateLimit(limit: 20, period: 120)]
|
#[UserRateLimit(limit: 20, period: 120)]
|
||||||
#[AnonRateLimit(limit: 5, period: 120)]
|
|
||||||
#[ApiRoute(verb: 'POST', url: '/schedule', root: '/text2image')]
|
#[ApiRoute(verb: 'POST', url: '/schedule', root: '/text2image')]
|
||||||
public function schedule(string $input, string $appId, string $identifier = '', int $numberOfImages = 8): DataResponse {
|
public function schedule(string $input, string $appId, string $identifier = '', int $numberOfImages = 8): DataResponse {
|
||||||
$task = new Task($input, $appId, $numberOfImages, $this->userId, $identifier);
|
$task = new Task($input, $appId, $numberOfImages, $this->userId, $identifier);
|
||||||
|
|
@ -111,7 +109,7 @@ class TextToImageApiController extends OCSController {
|
||||||
* 200: Task returned
|
* 200: Task returned
|
||||||
* 404: Task not found
|
* 404: Task not found
|
||||||
*/
|
*/
|
||||||
#[PublicPage]
|
#[NoAdminRequired]
|
||||||
#[BruteForceProtection(action: 'text2image')]
|
#[BruteForceProtection(action: 'text2image')]
|
||||||
#[ApiRoute(verb: 'GET', url: '/task/{id}', root: '/text2image')]
|
#[ApiRoute(verb: 'GET', url: '/task/{id}', root: '/text2image')]
|
||||||
public function getTask(int $id): DataResponse {
|
public function getTask(int $id): DataResponse {
|
||||||
|
|
@ -143,7 +141,7 @@ class TextToImageApiController extends OCSController {
|
||||||
* 200: Image returned
|
* 200: Image returned
|
||||||
* 404: Task or image not found
|
* 404: Task or image not found
|
||||||
*/
|
*/
|
||||||
#[PublicPage]
|
#[NoAdminRequired]
|
||||||
#[BruteForceProtection(action: 'text2image')]
|
#[BruteForceProtection(action: 'text2image')]
|
||||||
#[ApiRoute(verb: 'GET', url: '/task/{id}/image/{index}', root: '/text2image')]
|
#[ApiRoute(verb: 'GET', url: '/task/{id}/image/{index}', root: '/text2image')]
|
||||||
public function getImage(int $id, int $index): DataResponse|FileDisplayResponse {
|
public function getImage(int $id, int $index): DataResponse|FileDisplayResponse {
|
||||||
|
|
|
||||||
|
|
@ -7199,7 +7199,6 @@
|
||||||
"text_to_image_api"
|
"text_to_image_api"
|
||||||
],
|
],
|
||||||
"security": [
|
"security": [
|
||||||
{},
|
|
||||||
{
|
{
|
||||||
"bearer_auth": []
|
"bearer_auth": []
|
||||||
},
|
},
|
||||||
|
|
@ -7257,6 +7256,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Current user is not logged in",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"ocs"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"ocs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"meta",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"meta": {
|
||||||
|
"$ref": "#/components/schemas/OCSMeta"
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -7269,7 +7296,6 @@
|
||||||
"text_to_image_api"
|
"text_to_image_api"
|
||||||
],
|
],
|
||||||
"security": [
|
"security": [
|
||||||
{},
|
|
||||||
{
|
{
|
||||||
"bearer_auth": []
|
"bearer_auth": []
|
||||||
},
|
},
|
||||||
|
|
@ -7438,6 +7464,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Current user is not logged in",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"ocs"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"ocs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"meta",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"meta": {
|
||||||
|
"$ref": "#/components/schemas/OCSMeta"
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -7450,7 +7504,6 @@
|
||||||
"text_to_image_api"
|
"text_to_image_api"
|
||||||
],
|
],
|
||||||
"security": [
|
"security": [
|
||||||
{},
|
|
||||||
{
|
{
|
||||||
"bearer_auth": []
|
"bearer_auth": []
|
||||||
},
|
},
|
||||||
|
|
@ -7594,6 +7647,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Current user is not logged in",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"ocs"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"ocs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"meta",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"meta": {
|
||||||
|
"$ref": "#/components/schemas/OCSMeta"
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -7787,7 +7868,6 @@
|
||||||
"text_to_image_api"
|
"text_to_image_api"
|
||||||
],
|
],
|
||||||
"security": [
|
"security": [
|
||||||
{},
|
|
||||||
{
|
{
|
||||||
"bearer_auth": []
|
"bearer_auth": []
|
||||||
},
|
},
|
||||||
|
|
@ -7914,6 +7994,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Current user is not logged in",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"ocs"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"ocs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"meta",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"meta": {
|
||||||
|
"$ref": "#/components/schemas/OCSMeta"
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7199,7 +7199,6 @@
|
||||||
"text_to_image_api"
|
"text_to_image_api"
|
||||||
],
|
],
|
||||||
"security": [
|
"security": [
|
||||||
{},
|
|
||||||
{
|
{
|
||||||
"bearer_auth": []
|
"bearer_auth": []
|
||||||
},
|
},
|
||||||
|
|
@ -7257,6 +7256,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Current user is not logged in",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"ocs"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"ocs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"meta",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"meta": {
|
||||||
|
"$ref": "#/components/schemas/OCSMeta"
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -7269,7 +7296,6 @@
|
||||||
"text_to_image_api"
|
"text_to_image_api"
|
||||||
],
|
],
|
||||||
"security": [
|
"security": [
|
||||||
{},
|
|
||||||
{
|
{
|
||||||
"bearer_auth": []
|
"bearer_auth": []
|
||||||
},
|
},
|
||||||
|
|
@ -7438,6 +7464,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Current user is not logged in",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"ocs"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"ocs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"meta",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"meta": {
|
||||||
|
"$ref": "#/components/schemas/OCSMeta"
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -7450,7 +7504,6 @@
|
||||||
"text_to_image_api"
|
"text_to_image_api"
|
||||||
],
|
],
|
||||||
"security": [
|
"security": [
|
||||||
{},
|
|
||||||
{
|
{
|
||||||
"bearer_auth": []
|
"bearer_auth": []
|
||||||
},
|
},
|
||||||
|
|
@ -7594,6 +7647,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Current user is not logged in",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"ocs"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"ocs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"meta",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"meta": {
|
||||||
|
"$ref": "#/components/schemas/OCSMeta"
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -7787,7 +7868,6 @@
|
||||||
"text_to_image_api"
|
"text_to_image_api"
|
||||||
],
|
],
|
||||||
"security": [
|
"security": [
|
||||||
{},
|
|
||||||
{
|
{
|
||||||
"bearer_auth": []
|
"bearer_auth": []
|
||||||
},
|
},
|
||||||
|
|
@ -7914,6 +7994,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Current user is not logged in",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"ocs"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"ocs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"meta",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"meta": {
|
||||||
|
"$ref": "#/components/schemas/OCSMeta"
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
116
openapi.json
116
openapi.json
|
|
@ -10712,7 +10712,6 @@
|
||||||
"core/text_to_image_api"
|
"core/text_to_image_api"
|
||||||
],
|
],
|
||||||
"security": [
|
"security": [
|
||||||
{},
|
|
||||||
{
|
{
|
||||||
"bearer_auth": []
|
"bearer_auth": []
|
||||||
},
|
},
|
||||||
|
|
@ -10770,6 +10769,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Current user is not logged in",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"ocs"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"ocs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"meta",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"meta": {
|
||||||
|
"$ref": "#/components/schemas/OCSMeta"
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -10782,7 +10809,6 @@
|
||||||
"core/text_to_image_api"
|
"core/text_to_image_api"
|
||||||
],
|
],
|
||||||
"security": [
|
"security": [
|
||||||
{},
|
|
||||||
{
|
{
|
||||||
"bearer_auth": []
|
"bearer_auth": []
|
||||||
},
|
},
|
||||||
|
|
@ -10951,6 +10977,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Current user is not logged in",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"ocs"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"ocs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"meta",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"meta": {
|
||||||
|
"$ref": "#/components/schemas/OCSMeta"
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -10963,7 +11017,6 @@
|
||||||
"core/text_to_image_api"
|
"core/text_to_image_api"
|
||||||
],
|
],
|
||||||
"security": [
|
"security": [
|
||||||
{},
|
|
||||||
{
|
{
|
||||||
"bearer_auth": []
|
"bearer_auth": []
|
||||||
},
|
},
|
||||||
|
|
@ -11107,6 +11160,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Current user is not logged in",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"ocs"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"ocs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"meta",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"meta": {
|
||||||
|
"$ref": "#/components/schemas/OCSMeta"
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -11300,7 +11381,6 @@
|
||||||
"core/text_to_image_api"
|
"core/text_to_image_api"
|
||||||
],
|
],
|
||||||
"security": [
|
"security": [
|
||||||
{},
|
|
||||||
{
|
{
|
||||||
"bearer_auth": []
|
"bearer_auth": []
|
||||||
},
|
},
|
||||||
|
|
@ -11427,6 +11507,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Current user is not logged in",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"ocs"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"ocs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"meta",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"meta": {
|
||||||
|
"$ref": "#/components/schemas/OCSMeta"
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue