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,
|
||||||
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 name = pickName(row) || `مشتری تهحساب ${dto.moshtariCode}`;
|
||||||
const tel = pickTel(row);
|
const tel = pickTel(row);
|
||||||
|
|||||||
@@ -176,6 +176,9 @@ export function normalizeMandehResponse(raw: unknown): NormalizedAssets {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** تهحساب برای بازه/جستجوی بدون نتیجه بهجای لیست خالی خطای «هیچ رکوردی یافت نشد» میدهد */
|
||||||
|
const NO_RECORDS = { emptyResultOnError: /رکوردی یافت نشد/i };
|
||||||
|
|
||||||
export class TahesabApi {
|
export class TahesabApi {
|
||||||
constructor(
|
constructor(
|
||||||
private readonly http: TahesabHttpClient,
|
private readonly http: TahesabHttpClient,
|
||||||
@@ -307,15 +310,30 @@ export class TahesabApi {
|
|||||||
[fromCode, toCode],
|
[fromCode, toCode],
|
||||||
'POST',
|
'POST',
|
||||||
opts?.timeoutMs,
|
opts?.timeoutMs,
|
||||||
|
NO_RECORDS,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
doListMoshtariByPhone(phone: string | number) {
|
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) {
|
doListMoshtariByName(name: string) {
|
||||||
return this.call('DoListMoshtari-ByName', 'DoListMoshtari', [name]);
|
return this.call(
|
||||||
|
'DoListMoshtari-ByName',
|
||||||
|
'DoListMoshtari',
|
||||||
|
[name],
|
||||||
|
undefined,
|
||||||
|
undefined,
|
||||||
|
NO_RECORDS,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** body key حساس به حروف کوچک مثل همکار */
|
/** body key حساس به حروف کوچک مثل همکار */
|
||||||
|
|||||||
Reference in New Issue
Block a user