( logging: boolean, translate: Translate, dataProvider: DataProvider, csvValues: any[], resourceName: string, disableGetMany: boolean | undefined, )
| 10 | } |
| 11 | |
| 12 | export async function GetIdsColliding( |
| 13 | logging: boolean, |
| 14 | translate: Translate, |
| 15 | dataProvider: DataProvider, |
| 16 | csvValues: any[], |
| 17 | resourceName: string, |
| 18 | disableGetMany: boolean | undefined, |
| 19 | ): Promise<Identifier[]> { |
| 20 | const logger = makeLogger(logging); |
| 21 | const hasIds = csvValues.some((v) => v.id); |
| 22 | if (!hasIds) { |
| 23 | return []; |
| 24 | } |
| 25 | try { |
| 26 | const csvIds: Identifier[] = csvValues.filter(v => !!v.id).map((v) => v.id); |
| 27 | const recordsIdsColliding = await (disableGetMany |
| 28 | ? GetIdsCollidingGetSingle( logging, translate, dataProvider, csvIds, resourceName ) |
| 29 | : GetIdsCollidingGetMany( logging, translate, dataProvider, csvIds, resourceName ) |
| 30 | ); |
| 31 | return recordsIdsColliding; |
| 32 | } catch (error) { |
| 33 | logger.error("GetIdsColliding", { csvValues }, error); |
| 34 | throw translate("csv.parsing.collidingIds"); |
| 35 | } |
| 36 | } |
| 37 | |
| 38 | export async function GetIdsCollidingGetSingle( |
| 39 | logging: boolean, |
no test coverage detected