Skip to content

Commit

Permalink
fix: Add fields inference to new Tracker entities
Browse files Browse the repository at this point in the history
  • Loading branch information
tokland committed Sep 13, 2024
1 parent 021237a commit 53f78f3
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 14 deletions.
8 changes: 4 additions & 4 deletions src/api/trackerEnrollments.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ export class TrackerEnrollments {

get<Fields extends D2TrackerEnrollmentFields>(
params: TrackerEnrollmentsParams<Fields>
): D2ApiResponse<TrackerEnrollmentsResponse> {
return this.api.get<TrackerEnrollmentsResponse>("/tracker/enrollments", {
): D2ApiResponse<TrackerEnrollmentsResponse<Fields>> {
return this.api.get<TrackerEnrollmentsResponse<Fields>>("/tracker/enrollments", {
..._.omit(params, ["fields"]),
fields: getFieldsAsString(params.fields),
});
Expand Down Expand Up @@ -88,10 +88,10 @@ type TrackerEnrollmentsParamsBase = {
type SemiColonDelimitedListOfUid = string;
type CommaDelimitedListOfUid = string;

export interface TrackerEnrollmentsResponse {
export interface TrackerEnrollmentsResponse<Fields> {
page: number;
pageSize: number;
instances: D2TrackerEnrollment[];
instances: SelectedPick<D2TrackerEnrollmentSchema, Fields>;
total?: number; // Only if requested with totalPages=true
}

Expand Down
10 changes: 5 additions & 5 deletions src/api/trackerEvents.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { D2ApiGeneric } from "./d2Api";
import { Id, Selector, D2ApiResponse } from "./base";
import { Id, Selector, D2ApiResponse, SelectedPick } from "./base";
import { Preset, FieldPresets, D2Geometry } from "../schemas";
import { getFieldsAsString } from "./common";
import _ from "lodash";
Expand All @@ -9,8 +9,8 @@ export class TrackerEvents {

get<Fields extends D2TrackerEventFields>(
params: EventsParams<Fields>
): D2ApiResponse<TrackerEventsResponse> {
return this.api.get<TrackerEventsResponse>("/tracker/events", {
): D2ApiResponse<TrackerEventsResponse<Fields>> {
return this.api.get<TrackerEventsResponse<Fields>>("/tracker/events", {
..._.omit(params, ["fields"]),
fields: getFieldsAsString(params.fields),
});
Expand Down Expand Up @@ -151,10 +151,10 @@ export interface DataValue {
providedElsewhere?: boolean;
}

export interface TrackerEventsResponse {
export interface TrackerEventsResponse<Fields> {
page: number;
pageSize: number;
instances: D2TrackerEvent[];
instances: SelectedPick<D2TrackerEventSchema, Fields>[];
total?: number; // Only if requested with totalPages=true
}

Expand Down
10 changes: 5 additions & 5 deletions src/api/trackerTrackedEntities.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import _ from "lodash";
import { D2Geometry, FieldPresets, Preset } from "../schemas";
import { Id, Selector } from "./base";
import { Id, Selector, SelectedPick } from "./base";
import { D2ApiResponse, getFieldsAsString } from "./common";
import { D2ApiGeneric } from "./d2Api";
import { D2TrackerEnrollment } from "./trackerEnrollments";
Expand All @@ -10,8 +10,8 @@ export class TrackedEntities {

get<Fields extends D2TrackerTrackedEntityFields>(
params: TrackerTrackedEntitiesParams<Fields>
): D2ApiResponse<TrackedEntitiesGetResponse> {
return this.d2Api.get<TrackedEntitiesGetResponse>("/tracker/trackedEntities", {
): D2ApiResponse<TrackedEntitiesGetResponse<Fields>> {
return this.d2Api.get<TrackedEntitiesGetResponse<Fields>>("/tracker/trackedEntities", {
..._.omit(params, ["fields"]),
fields: getFieldsAsString(params.fields),
});
Expand Down Expand Up @@ -131,10 +131,10 @@ export type TrackedEntitiesParamsBase = {
potentialDuplicate: boolean;
};

export interface TrackedEntitiesGetResponse {
export interface TrackedEntitiesGetResponse<Fields> {
page: number;
pageSize: number;
instances: D2TrackerTrackedEntity[];
instances: SelectedPick<D2TrackerTrackedEntitySchema, Fields>[];
total?: number; // Only if requested with totalPages=true
}

Expand Down

0 comments on commit 53f78f3

Please sign in to comment.