Skip to content

Commit 9576629

Browse files
committed
Add object IDs
1 parent d2d322e commit 9576629

1 file changed

Lines changed: 16 additions & 7 deletions

File tree

src/api/rev_lookup.rs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use assembly_core::buffer::CastError;
22
use assembly_data::{fdb::common::Latin1Str, xml::localization::LocaleNode};
33
use paradox_typed_db::{
4-
typed_rows::{BehaviorTemplateRow, MissionTaskRow, MissionsRow, TypedRow},
4+
typed_rows::{BehaviorTemplateRow, MissionTaskRow, MissionsRow, ObjectsRef, TypedRow},
55
typed_tables::{BehaviorParameterTable, BehaviorTemplateTable, MissionTasksTable},
66
TypedDatabase,
77
};
@@ -464,18 +464,27 @@ fn rev_mission_types_full_api(_db: &TypedDatabase, rev: Rev) -> Result<Json, Cas
464464
Ok(warp::reply::json(&rev.inner.mission_types))
465465
}
466466

467+
#[derive(Serialize)]
468+
struct ObjectIDs<'a, T> {
469+
object_ids: &'a [T],
470+
}
471+
467472
fn rev_object_type_api(
468-
_db: &TypedDatabase,
473+
db: &TypedDatabase,
469474
rev: Rev,
470475
ty: PercentDecoded,
471476
) -> Result<Option<Json>, CastError> {
472477
let key: &String = ty.borrow();
473478
tracing::info!("{}", key);
474-
Ok(rev
475-
.inner
476-
.object_types
477-
.get(key)
478-
.map(|objects| warp::reply::json(&objects)))
479+
Ok(rev.inner.object_types.get(key).map(|objects| {
480+
let rep = Api {
481+
data: ObjectIDs {
482+
object_ids: objects.as_ref(),
483+
},
484+
embedded: TypedTableIterAdapter::<ObjectsRef, _, _>::new(&db.objects, objects),
485+
};
486+
warp::reply::json(&rep)
487+
}))
479488
}
480489

481490
fn rev_object_types_api(_db: &TypedDatabase, rev: Rev) -> Result<Json, CastError> {

0 commit comments

Comments
 (0)