@solidstarters/solid-core 1.2.112 → 1.2.113

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidstarters/solid-core",
3
- "version": "1.2.112",
3
+ "version": "1.2.113",
4
4
  "description": "This module is a NestJS module containing all the required core providers required by a Solid application",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -411,18 +411,43 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
411
411
  const fieldType = fieldMetadata.type;
412
412
  // const userKeyFieldName = userKeyField?.name || 'id'; // Default to 'id' if not found
413
413
 
414
+ // TODO Move this logic to field crud managers i.e add a parse method to the field crud manager interface
414
415
  switch (fieldType) {
415
416
  case SolidFieldType.relation: {
416
417
  return await this.populateDtoForRelations(fieldMetadata, record, key, dtoRecord);
417
418
  }
418
- case SolidFieldType.date: return this.populateDtoForDate(record, key, fieldMetadata, dtoRecord);
419
+ case SolidFieldType.date:
419
420
  case SolidFieldType.datetime: return this.populateDtoForDate(record, key, fieldMetadata, dtoRecord);
421
+ case SolidFieldType.int:
422
+ case SolidFieldType.bigint:
423
+ case SolidFieldType.decimal:
424
+ return this.populateDtoForNumber(dtoRecord, fieldMetadata, record, key);
425
+ case SolidFieldType.boolean:
426
+ return this.populateDtoForBoolean(dtoRecord, fieldMetadata, record, key);
420
427
  default:
421
428
  dtoRecord[fieldMetadata.name] = record[key];
422
429
  return dtoRecord;
423
430
  }
424
431
  }
425
432
 
433
+ private populateDtoForBoolean(dtoRecord: Record<string, any>, fieldMetadata: FieldMetadata, record: Record<string, any>, key: string) {
434
+ const booleanValue = Boolean(record[key]);
435
+ if (typeof booleanValue !== 'boolean') {
436
+ throw new Error(`Invalid boolean value for field ${fieldMetadata.name}: ${record[key]}`);
437
+ }
438
+ dtoRecord[fieldMetadata.name] = booleanValue;
439
+ return dtoRecord;
440
+ }
441
+
442
+ private populateDtoForNumber(dtoRecord: Record<string, any>, fieldMetadata: FieldMetadata, record: Record<string, any>, key: string) {
443
+ const numberValue = Number(record[key]);
444
+ if (isNaN(numberValue)) {
445
+ throw new Error(`Invalid number value for field ${fieldMetadata.name}: ${record[key]}`);
446
+ }
447
+ dtoRecord[fieldMetadata.name] = numberValue;
448
+ return dtoRecord;
449
+ }
450
+
426
451
  private populateDtoForDate(record: Record<string, any>, key: string, fieldMetadata: FieldMetadata, dtoRecord: Record<string, any>) {
427
452
  {
428
453
  const dateValue = new Date(record[key]);