1+ import { DatabaseBuilderError } from "./errors" ;
12import { KeyUtils } from "./key-utils" ;
23import { PrimaryKeyType } from "./enums/primary-key-type" ;
34import { MetadataTable } from "../metadata-table" ;
@@ -24,15 +25,22 @@ export abstract class ColumnsValuesBuilder<
2425 fieldType : FieldType ,
2526 primaryKeyType ?: PrimaryKeyType
2627 ) : TThis {
27- if (
28- primaryKeyType === PrimaryKeyType . Guid
29- && ! value
30- && this . allowGenerateKey ( )
31- ) {
32- // gerar GUID
33- value = Utils . GUID ( ) ;
34- // set value GUID in model
35- KeyUtils . setKey ( this . metadata , this . modelToSave , value ) ;
28+ switch ( primaryKeyType ) {
29+ case PrimaryKeyType . Assigned :
30+ if ( ! value ) {
31+ throw new DatabaseBuilderError ( "Primary key to be informed when generation strategy is 'Assigned'!" ) ;
32+ }
33+ case PrimaryKeyType . Guid :
34+ if ( ! value && this . allowGenerateKey ( ) ) {
35+ // gerar GUID
36+ value = Utils . GUID ( ) ;
37+ // set value GUID in model
38+ KeyUtils . setKey ( this . metadata , this . modelToSave , value ) ;
39+ }
40+ break ;
41+ case PrimaryKeyType . AutoIncrement :
42+ default :
43+ break ;
3644 }
3745 this . columns . push ( {
3846 name : column ,
@@ -74,7 +82,6 @@ export abstract class ColumnsValuesBuilder<
7482 params : [ ] ,
7583 } ;
7684 result . keyColumns = this . columns . filter ( x => ! ! x . primaryKeyType ) . map ( x => x . name ) ;
77- // result.keyColumns = this.columns.filter(x => x.isKeyColumn).map(x => x.name);
7885 this . columns . forEach ( ( column ) => {
7986 const columnName = this . columnFormat ( column ) ;
8087 if ( columnName !== void 0 ) {
0 commit comments