Skip to content

Commit f987363

Browse files
committed
Use specific model for TaskQueueEntry instead of pydantic_model_creator
Signed-off-by: Aaron Chong <aaronchongth@gmail.com>
1 parent 79ae3d5 commit f987363

File tree

11 files changed

+141
-130
lines changed

11 files changed

+141
-130
lines changed

packages/api-client/lib/openapi/api.ts

Lines changed: 69 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -463,67 +463,6 @@ export interface ApiServerModelsTortoiseModelsTasksTaskFavoriteLeaf {
463463
*/
464464
user: string;
465465
}
466-
/**
467-
*
468-
* @export
469-
* @interface ApiServerModelsTortoiseModelsTasksTaskStateLeaf
470-
*/
471-
export interface ApiServerModelsTortoiseModelsTasksTaskStateLeaf {
472-
/**
473-
*
474-
* @type {string}
475-
* @memberof ApiServerModelsTortoiseModelsTasksTaskStateLeaf
476-
*/
477-
id_: string;
478-
/**
479-
*
480-
* @type {string}
481-
* @memberof ApiServerModelsTortoiseModelsTasksTaskStateLeaf
482-
*/
483-
assigned_to?: string | null;
484-
/**
485-
*
486-
* @type {string}
487-
* @memberof ApiServerModelsTortoiseModelsTasksTaskStateLeaf
488-
*/
489-
unix_millis_start_time?: string | null;
490-
/**
491-
*
492-
* @type {string}
493-
* @memberof ApiServerModelsTortoiseModelsTasksTaskStateLeaf
494-
*/
495-
unix_millis_finish_time?: string | null;
496-
/**
497-
*
498-
* @type {string}
499-
* @memberof ApiServerModelsTortoiseModelsTasksTaskStateLeaf
500-
*/
501-
status?: string | null;
502-
/**
503-
*
504-
* @type {string}
505-
* @memberof ApiServerModelsTortoiseModelsTasksTaskStateLeaf
506-
*/
507-
unix_millis_request_time?: string | null;
508-
/**
509-
*
510-
* @type {string}
511-
* @memberof ApiServerModelsTortoiseModelsTasksTaskStateLeaf
512-
*/
513-
requester?: string | null;
514-
/**
515-
*
516-
* @type {string}
517-
* @memberof ApiServerModelsTortoiseModelsTasksTaskStateLeaf
518-
*/
519-
pickup?: string | null;
520-
/**
521-
*
522-
* @type {string}
523-
* @memberof ApiServerModelsTortoiseModelsTasksTaskStateLeaf
524-
*/
525-
destination?: string | null;
526-
}
527466
/**
528467
* Which agent (robot) is the task assigned to
529468
* @export
@@ -2645,6 +2584,73 @@ export const TaskPhaseSkipRequestTypeEnum = {
26452584
export type TaskPhaseSkipRequestTypeEnum =
26462585
typeof TaskPhaseSkipRequestTypeEnum[keyof typeof TaskPhaseSkipRequestTypeEnum];
26472586

2587+
/**
2588+
*
2589+
* @export
2590+
* @interface TaskQueueEntry
2591+
*/
2592+
export interface TaskQueueEntry {
2593+
/**
2594+
*
2595+
* @type {string}
2596+
* @memberof TaskQueueEntry
2597+
*/
2598+
id: string;
2599+
/**
2600+
*
2601+
* @type {string}
2602+
* @memberof TaskQueueEntry
2603+
*/
2604+
assigned_to: string;
2605+
/**
2606+
*
2607+
* @type {number}
2608+
* @memberof TaskQueueEntry
2609+
*/
2610+
unix_millis_start_time?: number;
2611+
/**
2612+
*
2613+
* @type {number}
2614+
* @memberof TaskQueueEntry
2615+
*/
2616+
unix_millis_finish_time?: number;
2617+
/**
2618+
*
2619+
* @type {string}
2620+
* @memberof TaskQueueEntry
2621+
*/
2622+
status?: string;
2623+
/**
2624+
*
2625+
* @type {number}
2626+
* @memberof TaskQueueEntry
2627+
*/
2628+
unix_millis_request_time?: number;
2629+
/**
2630+
*
2631+
* @type {string}
2632+
* @memberof TaskQueueEntry
2633+
*/
2634+
requester?: string;
2635+
/**
2636+
*
2637+
* @type {number}
2638+
* @memberof TaskQueueEntry
2639+
*/
2640+
unix_millis_warn_time?: number;
2641+
/**
2642+
*
2643+
* @type {string}
2644+
* @memberof TaskQueueEntry
2645+
*/
2646+
pickup?: string;
2647+
/**
2648+
*
2649+
* @type {string}
2650+
* @memberof TaskQueueEntry
2651+
*/
2652+
destination?: string;
2653+
}
26482654
/**
26492655
*
26502656
* @export
@@ -9939,12 +9945,7 @@ export const TasksApiFp = function (configuration?: Configuration) {
99399945
offset?: number,
99409946
orderBy?: string,
99419947
options?: AxiosRequestConfig,
9942-
): Promise<
9943-
(
9944-
axios?: AxiosInstance,
9945-
basePath?: string,
9946-
) => AxiosPromise<Array<ApiServerModelsTortoiseModelsTasksTaskStateLeaf>>
9947-
> {
9948+
): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<TaskQueueEntry>>> {
99489949
const localVarAxiosArgs =
99499950
await localVarAxiosParamCreator.queryTaskQueueEntryTasksQueueEntryGet(
99509951
taskId,
@@ -10447,7 +10448,7 @@ export const TasksApiFactory = function (
1044710448
offset?: number,
1044810449
orderBy?: string,
1044910450
options?: any,
10450-
): AxiosPromise<Array<ApiServerModelsTortoiseModelsTasksTaskStateLeaf>> {
10451+
): AxiosPromise<Array<TaskQueueEntry>> {
1045110452
return localVarFp
1045210453
.queryTaskQueueEntryTasksQueueEntryGet(
1045310454
taskId,

packages/api-client/lib/version.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ import { version as rmfModelVer } from 'rmf-models';
33

44
export const version = {
55
rmfModels: rmfModelVer,
6-
rmfServer: '256aea8c511c08878cd664dff5017763d54981db',
6+
rmfServer: '79ae3d516580a3c108233cdfc64063539fac601a',
77
openapiGenerator: '6.2.1',
88
};

packages/api-client/schema/index.ts

Lines changed: 18 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,9 +1206,7 @@ export default {
12061206
schema: {
12071207
title: 'Response Query Task Queue Entry Tasks Queue Entry Get',
12081208
type: 'array',
1209-
items: {
1210-
$ref: '#/components/schemas/api_server.models.tortoise_models.tasks.TaskState.leaf',
1211-
},
1209+
items: { $ref: '#/components/schemas/TaskQueueEntry' },
12121210
},
12131211
},
12141212
},
@@ -3902,6 +3900,23 @@ export default {
39023900
},
39033901
},
39043902
},
3903+
TaskQueueEntry: {
3904+
title: 'TaskQueueEntry',
3905+
required: ['id', 'assigned_to'],
3906+
type: 'object',
3907+
properties: {
3908+
id: { title: 'Id', type: 'string' },
3909+
assigned_to: { title: 'Assigned To', type: 'string' },
3910+
unix_millis_start_time: { title: 'Unix Millis Start Time', type: 'integer' },
3911+
unix_millis_finish_time: { title: 'Unix Millis Finish Time', type: 'integer' },
3912+
status: { title: 'Status', type: 'string' },
3913+
unix_millis_request_time: { title: 'Unix Millis Request Time', type: 'integer' },
3914+
requester: { title: 'Requester', type: 'string' },
3915+
unix_millis_warn_time: { title: 'Unix Millis Warn Time', type: 'integer' },
3916+
pickup: { title: 'Pickup', type: 'string' },
3917+
destination: { title: 'Destination', type: 'string' },
3918+
},
3919+
},
39053920
TaskRequest: {
39063921
title: 'TaskRequest',
39073922
required: ['category', 'description'],
@@ -4379,38 +4394,6 @@ export default {
43794394
},
43804395
additionalProperties: false,
43814396
},
4382-
'api_server.models.tortoise_models.tasks.TaskState.leaf': {
4383-
title: 'TaskState',
4384-
required: ['id_'],
4385-
type: 'object',
4386-
properties: {
4387-
id_: { title: 'Id ', maxLength: 255, type: 'string' },
4388-
assigned_to: { title: 'Assigned To', maxLength: 255, type: 'string', nullable: true },
4389-
unix_millis_start_time: {
4390-
title: 'Unix Millis Start Time',
4391-
type: 'string',
4392-
format: 'date-time',
4393-
nullable: true,
4394-
},
4395-
unix_millis_finish_time: {
4396-
title: 'Unix Millis Finish Time',
4397-
type: 'string',
4398-
format: 'date-time',
4399-
nullable: true,
4400-
},
4401-
status: { title: 'Status', maxLength: 255, type: 'string', nullable: true },
4402-
unix_millis_request_time: {
4403-
title: 'Unix Millis Request Time',
4404-
type: 'string',
4405-
format: 'date-time',
4406-
nullable: true,
4407-
},
4408-
requester: { title: 'Requester', maxLength: 255, type: 'string', nullable: true },
4409-
pickup: { title: 'Pickup', maxLength: 255, type: 'string', nullable: true },
4410-
destination: { title: 'Destination', maxLength: 255, type: 'string', nullable: true },
4411-
},
4412-
additionalProperties: false,
4413-
},
44144397
api_server__models__rmf_api__fleet_log__FleetState: {
44154398
title: 'FleetState',
44164399
type: 'object',

packages/api-server/api_server/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,5 @@
4545
from .rmf_api.task_state_update import TaskStateUpdate
4646
from .rmf_api.undo_skip_phase_request import UndoPhaseSkipRequest
4747
from .rmf_api.undo_skip_phase_response import UndoPhaseSkipResponse
48+
from .task_queue_entry import *
4849
from .user import *
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from typing import Optional, cast
2+
3+
from pydantic import BaseModel
4+
5+
6+
class TaskQueueEntry(BaseModel):
7+
id: str
8+
assigned_to: str
9+
unix_millis_start_time: Optional[int]
10+
unix_millis_finish_time: Optional[int]
11+
status: Optional[str]
12+
unix_millis_request_time: Optional[int]
13+
requester: Optional[str]
14+
unix_millis_warn_time: Optional[int]
15+
pickup: Optional[str]
16+
destination: Optional[str]

packages/api-server/api_server/models/tortoise_models/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
TaskEventLogPhasesLog,
2828
TaskFavorite,
2929
TaskFavoritePydantic,
30-
TaskQueueEntryPydantic,
3130
TaskRequest,
3231
TaskState,
3332
)

packages/api-server/api_server/models/tortoise_models/tasks.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,4 @@ class TaskFavorite(Model):
8282
user = CharField(255, null=False, index=True)
8383

8484

85-
TaskQueueEntryPydantic = pydantic_model_creator(
86-
TaskState, exclude=("data", "category", "unix_millis_warn_time")
87-
)
8885
TaskFavoritePydantic = pydantic_model_creator(TaskFavorite)

packages/api-server/api_server/repositories/tasks.py

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
Pagination,
1616
Phases,
1717
TaskEventLog,
18+
TaskQueueEntry,
1819
TaskRequest,
1920
TaskState,
2021
User,
2122
)
2223
from api_server.models import tortoise_models as ttm
2324
from api_server.models.rmf_api.log_entry import Tier
2425
from api_server.models.rmf_api.task_state import Category, Id, Phase
25-
from api_server.models.tortoise_models import TaskQueueEntryPydantic
2626
from api_server.models.tortoise_models import TaskRequest as DbTaskRequest
2727
from api_server.models.tortoise_models import TaskState as DbTaskState
2828
from api_server.query import add_pagination
@@ -245,7 +245,7 @@ async def get_task_state(self, task_id: str) -> Optional[TaskState]:
245245

246246
async def query_task_queue_entry(
247247
self, query: QuerySet[DbTaskState], pagination: Optional[Pagination] = None
248-
) -> List[TaskQueueEntryPydantic]:
248+
) -> List[TaskQueueEntry]:
249249
try:
250250
if pagination:
251251
query = add_pagination(query, pagination)
@@ -263,13 +263,36 @@ async def query_task_queue_entry(
263263
)
264264
entries = []
265265
for r in results:
266-
status = r["status"]
267-
if "Status." in status:
268-
r["status"] = r["status"].split("Status.")[1]
269-
entries.append(TaskQueueEntryPydantic(**r))
270-
return entries
266+
print(r)
267+
print(type(r["unix_millis_start_time"]))
268+
print(type(r["destination"]))
269+
entries.append(
270+
TaskQueueEntry(
271+
id=r["id_"],
272+
assigned_to=r["assigned_to"],
273+
unix_millis_start_time=datetime.timestamp(
274+
r["unix_millis_start_time"]
275+
),
276+
unix_millis_finish_time=datetime.timestamp(
277+
r["unix_millis_finish_time"]
278+
),
279+
status=r["status"],
280+
unix_millis_request_time=datetime.timestamp(
281+
r["unix_millis_request_time"]
282+
),
283+
requester=r["requester"],
284+
pickup=r["pickup"],
285+
destination=r["destination"],
286+
)
287+
)
288+
# status = r["status"]
289+
# if "Status." in status:
290+
# r["status"] = r["status"].split("Status.")[1]
291+
# entries.append(TaskQueueEntry(**r))
292+
# return entries
271293
except FieldError as e:
272294
raise HTTPException(422, str(e)) from e
295+
return entries
273296

274297
async def get_task_log(
275298
self, task_id: str, between: Tuple[int, int]

packages/api-server/api_server/routes/tasks/tasks.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
start_time_between_query,
1515
)
1616
from api_server.fast_io import FastIORouter, SubscriptionRequest
17-
from api_server.models.tortoise_models import TaskQueueEntryPydantic
1817
from api_server.models.tortoise_models import TaskState as DbTaskState
1918
from api_server.repositories import TaskRepository, task_repo_dep
2019
from api_server.response import RawJSONResponse
@@ -139,7 +138,7 @@ async def get_task_state(
139138
return result
140139

141140

142-
@router.get("/queue_entry", response_model=List[TaskQueueEntryPydantic])
141+
@router.get("/queue_entry", response_model=List[mdl.TaskQueueEntry])
143142
async def query_task_queue_entry(
144143
task_repo: TaskRepository = Depends(task_repo_dep),
145144
task_id: Optional[str] = Query(

0 commit comments

Comments
 (0)