Add getByRid to TrainsModule
All checks were successful
Publish Package / build-and-publish (push) Successful in 13s

This commit is contained in:
2026-05-03 00:51:03 +01:00
parent ed2f8527d6
commit 935dc271a2
4 changed files with 1813 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
import { ApiTrainsTrainByHeadcode } from '@owlboard/api-schema-types';
import { ApiTrainsTrainByHeadcode, ApiTrainsTrainDetails } from '@owlboard/api-schema-types';
import type { BaseClient, ApiResult } from '../lib/base.js';
import { IsValidHeadcode, IsValidToc, IsValidDateStr } from '../lib/validation.js';
import { IsValidHeadcode, IsValidRid, IsValidToc, IsValidDateStr } from '../lib/validation.js';
import { ensureDateString } from '../lib/helpers.js';
import { ValidationError } from '../lib/errors.js';
@@ -32,5 +32,14 @@ export class TrainsModule {
}, customFetch);
}
async getByRid(rid: string, customFetch?: typeof fetch) {}
async getByRid(rid: string, customFetch?: typeof fetch): Promise<ApiResult<ApiTrainsTrainDetails.TrainDetailsResponse>> {
if (!IsValidRid(rid)) {
throw new ValidationError("RID", "Invalid RID format, must be 15-16 numerals")
}
const path = `/train/${rid}`
return this.client.request<ApiTrainsTrainDetails.TrainDetailsResponse>(path, {
method: 'GET',
}, customFetch);
}
}