fix: treat Tahesab no-records as an empty customer list instead of a 502
Listing all customers no longer fails on the final empty code range, and importing a missing code no longer creates a placeholder person.
This commit is contained in:
@@ -507,7 +507,13 @@ export class TahesabPersonLinkService {
|
||||
dto.moshtariCode,
|
||||
dto.moshtariCode,
|
||||
);
|
||||
row = (asMoshtariList(raw)[0] ?? {}) as Record<string, unknown>;
|
||||
const found = asMoshtariList(raw)[0];
|
||||
if (!found) {
|
||||
throw new NotFoundException(
|
||||
`مشتری با کد ${dto.moshtariCode} در تهحساب یافت نشد.`,
|
||||
);
|
||||
}
|
||||
row = found as Record<string, unknown>;
|
||||
}
|
||||
const name = pickName(row) || `مشتری تهحساب ${dto.moshtariCode}`;
|
||||
const tel = pickTel(row);
|
||||
|
||||
@@ -176,6 +176,9 @@ export function normalizeMandehResponse(raw: unknown): NormalizedAssets {
|
||||
};
|
||||
}
|
||||
|
||||
/** تهحساب برای بازه/جستجوی بدون نتیجه بهجای لیست خالی خطای «هیچ رکوردی یافت نشد» میدهد */
|
||||
const NO_RECORDS = { emptyResultOnError: /رکوردی یافت نشد/i };
|
||||
|
||||
export class TahesabApi {
|
||||
constructor(
|
||||
private readonly http: TahesabHttpClient,
|
||||
@@ -307,15 +310,30 @@ export class TahesabApi {
|
||||
[fromCode, toCode],
|
||||
'POST',
|
||||
opts?.timeoutMs,
|
||||
NO_RECORDS,
|
||||
);
|
||||
}
|
||||
|
||||
doListMoshtariByPhone(phone: string | number) {
|
||||
return this.call('DoListMoshtari-ByPhone', 'DoListMoshtari', [phone]);
|
||||
return this.call(
|
||||
'DoListMoshtari-ByPhone',
|
||||
'DoListMoshtari',
|
||||
[phone],
|
||||
undefined,
|
||||
undefined,
|
||||
NO_RECORDS,
|
||||
);
|
||||
}
|
||||
|
||||
doListMoshtariByName(name: string) {
|
||||
return this.call('DoListMoshtari-ByName', 'DoListMoshtari', [name]);
|
||||
return this.call(
|
||||
'DoListMoshtari-ByName',
|
||||
'DoListMoshtari',
|
||||
[name],
|
||||
undefined,
|
||||
undefined,
|
||||
NO_RECORDS,
|
||||
);
|
||||
}
|
||||
|
||||
/** body key حساس به حروف کوچک مثل همکار */
|
||||
|
||||
Reference in New Issue
Block a user