mirror of
https://github.com/nextcloud/server.git
synced 2026-06-12 10:10:49 -04:00
Merge pull request #50094 from nextcloud/fix/noid/broken-taskprocessing-api
Fix broken taskprocessing api /tasktypes endpoint
This commit is contained in:
commit
d3ec3deab4
4 changed files with 100 additions and 60 deletions
|
|
@ -39,6 +39,7 @@ use OCP\TaskProcessing\IManager;
|
|||
use OCP\TaskProcessing\ShapeEnumValue;
|
||||
use OCP\TaskProcessing\Task;
|
||||
use RuntimeException;
|
||||
use stdClass;
|
||||
|
||||
/**
|
||||
* @psalm-import-type CoreTaskProcessingTask from ResponseDefinitions
|
||||
|
|
@ -67,31 +68,70 @@ class TaskProcessingApiController extends \OCP\AppFramework\OCSController {
|
|||
#[PublicPage]
|
||||
#[ApiRoute(verb: 'GET', url: '/tasktypes', root: '/taskprocessing')]
|
||||
public function taskTypes(): DataResponse {
|
||||
/** @var array<string, CoreTaskProcessingTaskType> $taskTypes */
|
||||
$taskTypes = array_map(function (array $tt) {
|
||||
$tt['inputShape'] = array_values(array_map(function ($descriptor) {
|
||||
$tt['inputShape'] = array_map(function ($descriptor) {
|
||||
return $descriptor->jsonSerialize();
|
||||
}, $tt['inputShape']));
|
||||
$tt['outputShape'] = array_values(array_map(function ($descriptor) {
|
||||
}, $tt['inputShape']);
|
||||
if (empty($tt['inputShape'])) {
|
||||
$tt['inputShape'] = new stdClass;
|
||||
}
|
||||
|
||||
$tt['outputShape'] = array_map(function ($descriptor) {
|
||||
return $descriptor->jsonSerialize();
|
||||
}, $tt['outputShape']));
|
||||
$tt['optionalInputShape'] = array_values(array_map(function ($descriptor) {
|
||||
}, $tt['outputShape']);
|
||||
if (empty($tt['outputShape'])) {
|
||||
$tt['outputShape'] = new stdClass;
|
||||
}
|
||||
|
||||
$tt['optionalInputShape'] = array_map(function ($descriptor) {
|
||||
return $descriptor->jsonSerialize();
|
||||
}, $tt['optionalInputShape']));
|
||||
$tt['optionalOutputShape'] = array_values(array_map(function ($descriptor) {
|
||||
}, $tt['optionalInputShape']);
|
||||
if (empty($tt['optionalInputShape'])) {
|
||||
$tt['optionalInputShape'] = new stdClass;
|
||||
}
|
||||
|
||||
$tt['optionalOutputShape'] = array_map(function ($descriptor) {
|
||||
return $descriptor->jsonSerialize();
|
||||
}, $tt['optionalOutputShape']));
|
||||
$tt['inputShapeEnumValues'] = array_values(array_map(function (array $enumValues) {
|
||||
return array_values(array_map(fn (ShapeEnumValue $enumValue) => $enumValue->jsonSerialize(), $enumValues));
|
||||
}, $tt['inputShapeEnumValues']));
|
||||
$tt['optionalInputShapeEnumValues'] = array_values(array_map(function (array $enumValues) {
|
||||
return array_values(array_map(fn (ShapeEnumValue $enumValue) => $enumValue->jsonSerialize(), $enumValues));
|
||||
}, $tt['optionalInputShapeEnumValues']));
|
||||
$tt['outputShapeEnumValues'] = array_values(array_map(function (array $enumValues) {
|
||||
return array_values(array_map(fn (ShapeEnumValue $enumValue) => $enumValue->jsonSerialize(), $enumValues));
|
||||
}, $tt['outputShapeEnumValues']));
|
||||
$tt['optionalOutputShapeEnumValues'] = array_values(array_map(function (array $enumValues) {
|
||||
return array_values(array_map(fn (ShapeEnumValue $enumValue) => $enumValue->jsonSerialize(), $enumValues));
|
||||
}, $tt['optionalOutputShapeEnumValues']));
|
||||
}, $tt['optionalOutputShape']);
|
||||
if (empty($tt['optionalOutputShape'])) {
|
||||
$tt['optionalOutputShape'] = new stdClass;
|
||||
}
|
||||
|
||||
$tt['inputShapeEnumValues'] = array_map(function (array $enumValues) {
|
||||
return array_map(fn (ShapeEnumValue $enumValue) => $enumValue->jsonSerialize(), $enumValues);
|
||||
}, $tt['inputShapeEnumValues']);
|
||||
if (empty($tt['inputShapeEnumValues'])) {
|
||||
$tt['inputShapeEnumValues'] = new stdClass;
|
||||
}
|
||||
|
||||
$tt['optionalInputShapeEnumValues'] = array_map(function (array $enumValues) {
|
||||
return array_map(fn (ShapeEnumValue $enumValue) => $enumValue->jsonSerialize(), $enumValues);
|
||||
}, $tt['optionalInputShapeEnumValues']);
|
||||
if (empty($tt['optionalInputShapeEnumValues'])) {
|
||||
$tt['optionalInputShapeEnumValues'] = new stdClass;
|
||||
}
|
||||
|
||||
$tt['outputShapeEnumValues'] = array_map(function (array $enumValues) {
|
||||
return array_map(fn (ShapeEnumValue $enumValue) => $enumValue->jsonSerialize(), $enumValues);
|
||||
}, $tt['outputShapeEnumValues']);
|
||||
if (empty($tt['outputShapeEnumValues'])) {
|
||||
$tt['outputShapeEnumValues'] = new stdClass;
|
||||
}
|
||||
|
||||
$tt['optionalOutputShapeEnumValues'] = array_map(function (array $enumValues) {
|
||||
return array_map(fn (ShapeEnumValue $enumValue) => $enumValue->jsonSerialize(), $enumValues);
|
||||
}, $tt['optionalOutputShapeEnumValues']);
|
||||
if (empty($tt['optionalOutputShapeEnumValues'])) {
|
||||
$tt['optionalOutputShapeEnumValues'] = new stdClass;
|
||||
}
|
||||
|
||||
if (empty($tt['inputShapeDefaults'])) {
|
||||
$tt['inputShapeDefaults'] = new stdClass;
|
||||
}
|
||||
if (empty($tt['optionalInputShapeDefaults'])) {
|
||||
$tt['optionalInputShapeDefaults'] = new stdClass;
|
||||
}
|
||||
return $tt;
|
||||
}, $this->taskProcessingManager->getAvailableTaskTypes());
|
||||
return new DataResponse([
|
||||
|
|
|
|||
|
|
@ -171,16 +171,16 @@ namespace OC\Core;
|
|||
* @psalm-type CoreTaskProcessingTaskType = array{
|
||||
* name: string,
|
||||
* description: string,
|
||||
* inputShape: list<CoreTaskProcessingShape>,
|
||||
* inputShapeEnumValues: list<list<array{name: string, value: string}>>,
|
||||
* inputShape: array<string, CoreTaskProcessingShape>,
|
||||
* inputShapeEnumValues: array<string, list<array{name: string, value: string}>>,
|
||||
* inputShapeDefaults: array<string, numeric|string>,
|
||||
* optionalInputShape: list<CoreTaskProcessingShape>,
|
||||
* optionalInputShapeEnumValues: list<list<array{name: string, value: string}>>,
|
||||
* optionalInputShape: array<string, CoreTaskProcessingShape>,
|
||||
* optionalInputShapeEnumValues: array<string, list<array{name: string, value: string}>>,
|
||||
* optionalInputShapeDefaults: array<string, numeric|string>,
|
||||
* outputShape: list<CoreTaskProcessingShape>,
|
||||
* outputShapeEnumValues: list<list<array{name: string, value: string}>>,
|
||||
* optionalOutputShape: list<CoreTaskProcessingShape>,
|
||||
* optionalOutputShapeEnumValues: list<list<array{name: string, value: string}>>,
|
||||
* outputShape: array<string, CoreTaskProcessingShape>,
|
||||
* outputShapeEnumValues: array<string, list<array{name: string, value: string}>>,
|
||||
* optionalOutputShape: array<string, CoreTaskProcessingShape>,
|
||||
* optionalOutputShapeEnumValues: array<string, list<array{name: string, value: string}>>,
|
||||
* }
|
||||
*
|
||||
* @psalm-type CoreTaskProcessingIO = array<string, numeric|list<numeric>|string|list<string>>
|
||||
|
|
|
|||
|
|
@ -635,14 +635,14 @@
|
|||
"type": "string"
|
||||
},
|
||||
"inputShape": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/components/schemas/TaskProcessingShape"
|
||||
}
|
||||
},
|
||||
"inputShapeEnumValues": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
|
|
@ -675,14 +675,14 @@
|
|||
}
|
||||
},
|
||||
"optionalInputShape": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/components/schemas/TaskProcessingShape"
|
||||
}
|
||||
},
|
||||
"optionalInputShapeEnumValues": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
|
|
@ -715,14 +715,14 @@
|
|||
}
|
||||
},
|
||||
"outputShape": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/components/schemas/TaskProcessingShape"
|
||||
}
|
||||
},
|
||||
"outputShapeEnumValues": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
|
|
@ -742,14 +742,14 @@
|
|||
}
|
||||
},
|
||||
"optionalOutputShape": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/components/schemas/TaskProcessingShape"
|
||||
}
|
||||
},
|
||||
"optionalOutputShapeEnumValues": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
|
|
|
|||
|
|
@ -635,14 +635,14 @@
|
|||
"type": "string"
|
||||
},
|
||||
"inputShape": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/components/schemas/TaskProcessingShape"
|
||||
}
|
||||
},
|
||||
"inputShapeEnumValues": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
|
|
@ -675,14 +675,14 @@
|
|||
}
|
||||
},
|
||||
"optionalInputShape": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/components/schemas/TaskProcessingShape"
|
||||
}
|
||||
},
|
||||
"optionalInputShapeEnumValues": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
|
|
@ -715,14 +715,14 @@
|
|||
}
|
||||
},
|
||||
"outputShape": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/components/schemas/TaskProcessingShape"
|
||||
}
|
||||
},
|
||||
"outputShapeEnumValues": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
|
|
@ -742,14 +742,14 @@
|
|||
}
|
||||
},
|
||||
"optionalOutputShape": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/components/schemas/TaskProcessingShape"
|
||||
}
|
||||
},
|
||||
"optionalOutputShapeEnumValues": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
|
|
|
|||
Loading…
Reference in a new issue