Skip to content

Commit 8fcb390

Browse files
chore: wip
1 parent 5c6c3da commit 8fcb390

File tree

18 files changed

+503
-216
lines changed

18 files changed

+503
-216
lines changed

storage/framework/core/orm/src/generate.ts

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1271,7 +1271,15 @@ export async function generateModelString(
12711271
}
12721272
12731273
has(relation: string): ${modelName}Model {
1274-
return ${modelName}Model.has(relation)
1274+
this.selectFromQuery = this.selectFromQuery.where(({ exists, selectFrom }: any) =>
1275+
exists(
1276+
selectFrom(relation)
1277+
.select('1')
1278+
.whereRef(\`\${relation}.${formattedModelName}_id\`, '=', '${tableName}.id'),
1279+
),
1280+
)
1281+
1282+
return this
12751283
}
12761284
12771285
static has(relation: string): ${modelName}Model {
@@ -1298,24 +1306,16 @@ export async function generateModelString(
12981306
return instance
12991307
}
13001308
1301-
whereHas(
1302-
relation: string,
1303-
callback: (query: SubqueryBuilder) => void
1304-
): ${modelName}Model {
1305-
return ${modelName}Model.whereHas(relation, callback)
1306-
}
1307-
1308-
static whereHas(
1309+
applyWhereHas(
13091310
relation: string,
13101311
callback: (query: SubqueryBuilder) => void
13111312
): ${modelName}Model {
1312-
const instance = new ${modelName}Model(null)
13131313
const subqueryBuilder = new SubqueryBuilder()
13141314
13151315
callback(subqueryBuilder)
13161316
const conditions = subqueryBuilder.getConditions()
13171317
1318-
instance.selectFromQuery = instance.selectFromQuery
1318+
this.selectFromQuery = this.selectFromQuery
13191319
.where(({ exists, selectFrom }: any) => {
13201320
let subquery = selectFrom(relation)
13211321
.select('1')
@@ -1363,7 +1363,22 @@ export async function generateModelString(
13631363
return exists(subquery)
13641364
})
13651365
1366-
return instance
1366+
return this
1367+
}
1368+
whereHas(
1369+
relation: string,
1370+
callback: (query: SubqueryBuilder) => void
1371+
): ${modelName}Model {
1372+
return this.applyWhereHas(relation, callback)
1373+
}
1374+
1375+
static whereHas(
1376+
relation: string,
1377+
callback: (query: SubqueryBuilder) => void
1378+
): ${modelName}Model {
1379+
const instance = new ${modelName}Model(null)
1380+
1381+
return instance.applyWhereHas(relation, callback)
13671382
}
13681383
13691384
applyDoesntHave(relation: string): ${modelName}Model {

storage/framework/orm/src/models/AccessToken.ts

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,15 @@ export class AccessTokenModel {
530530
}
531531

532532
has(relation: string): AccessTokenModel {
533-
return AccessTokenModel.has(relation)
533+
this.selectFromQuery = this.selectFromQuery.where(({ exists, selectFrom }: any) =>
534+
exists(
535+
selectFrom(relation)
536+
.select('1')
537+
.whereRef(`${relation}.accesstoken_id`, '=', 'personal_access_tokens.id'),
538+
),
539+
)
540+
541+
return this
534542
}
535543

536544
static has(relation: string): AccessTokenModel {
@@ -557,24 +565,16 @@ export class AccessTokenModel {
557565
return instance
558566
}
559567

560-
whereHas(
568+
applyWhereHas(
561569
relation: string,
562570
callback: (query: SubqueryBuilder) => void,
563571
): AccessTokenModel {
564-
return AccessTokenModel.whereHas(relation, callback)
565-
}
566-
567-
static whereHas(
568-
relation: string,
569-
callback: (query: SubqueryBuilder) => void,
570-
): AccessTokenModel {
571-
const instance = new AccessTokenModel(null)
572572
const subqueryBuilder = new SubqueryBuilder()
573573

574574
callback(subqueryBuilder)
575575
const conditions = subqueryBuilder.getConditions()
576576

577-
instance.selectFromQuery = instance.selectFromQuery
577+
this.selectFromQuery = this.selectFromQuery
578578
.where(({ exists, selectFrom }: any) => {
579579
let subquery = selectFrom(relation)
580580
.select('1')
@@ -624,7 +624,23 @@ export class AccessTokenModel {
624624
return exists(subquery)
625625
})
626626

627-
return instance
627+
return this
628+
}
629+
630+
whereHas(
631+
relation: string,
632+
callback: (query: SubqueryBuilder) => void,
633+
): AccessTokenModel {
634+
return this.applyWhereHas(relation, callback)
635+
}
636+
637+
static whereHas(
638+
relation: string,
639+
callback: (query: SubqueryBuilder) => void,
640+
): AccessTokenModel {
641+
const instance = new AccessTokenModel(null)
642+
643+
return instance.applyWhereHas(relation, callback)
628644
}
629645

630646
applyDoesntHave(relation: string): AccessTokenModel {

storage/framework/orm/src/models/Activity.ts

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,15 @@ export class ActivityModel {
553553
}
554554

555555
has(relation: string): ActivityModel {
556-
return ActivityModel.has(relation)
556+
this.selectFromQuery = this.selectFromQuery.where(({ exists, selectFrom }: any) =>
557+
exists(
558+
selectFrom(relation)
559+
.select('1')
560+
.whereRef(`${relation}.activity_id`, '=', 'activities.id'),
561+
),
562+
)
563+
564+
return this
557565
}
558566

559567
static has(relation: string): ActivityModel {
@@ -580,24 +588,16 @@ export class ActivityModel {
580588
return instance
581589
}
582590

583-
whereHas(
591+
applyWhereHas(
584592
relation: string,
585593
callback: (query: SubqueryBuilder) => void,
586594
): ActivityModel {
587-
return ActivityModel.whereHas(relation, callback)
588-
}
589-
590-
static whereHas(
591-
relation: string,
592-
callback: (query: SubqueryBuilder) => void,
593-
): ActivityModel {
594-
const instance = new ActivityModel(null)
595595
const subqueryBuilder = new SubqueryBuilder()
596596

597597
callback(subqueryBuilder)
598598
const conditions = subqueryBuilder.getConditions()
599599

600-
instance.selectFromQuery = instance.selectFromQuery
600+
this.selectFromQuery = this.selectFromQuery
601601
.where(({ exists, selectFrom }: any) => {
602602
let subquery = selectFrom(relation)
603603
.select('1')
@@ -647,7 +647,23 @@ export class ActivityModel {
647647
return exists(subquery)
648648
})
649649

650-
return instance
650+
return this
651+
}
652+
653+
whereHas(
654+
relation: string,
655+
callback: (query: SubqueryBuilder) => void,
656+
): ActivityModel {
657+
return this.applyWhereHas(relation, callback)
658+
}
659+
660+
static whereHas(
661+
relation: string,
662+
callback: (query: SubqueryBuilder) => void,
663+
): ActivityModel {
664+
const instance = new ActivityModel(null)
665+
666+
return instance.applyWhereHas(relation, callback)
651667
}
652668

653669
applyDoesntHave(relation: string): ActivityModel {

storage/framework/orm/src/models/Deployment.ts

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,15 @@ export class DeploymentModel {
567567
}
568568

569569
has(relation: string): DeploymentModel {
570-
return DeploymentModel.has(relation)
570+
this.selectFromQuery = this.selectFromQuery.where(({ exists, selectFrom }: any) =>
571+
exists(
572+
selectFrom(relation)
573+
.select('1')
574+
.whereRef(`${relation}.deployment_id`, '=', 'deployments.id'),
575+
),
576+
)
577+
578+
return this
571579
}
572580

573581
static has(relation: string): DeploymentModel {
@@ -594,24 +602,16 @@ export class DeploymentModel {
594602
return instance
595603
}
596604

597-
whereHas(
605+
applyWhereHas(
598606
relation: string,
599607
callback: (query: SubqueryBuilder) => void,
600608
): DeploymentModel {
601-
return DeploymentModel.whereHas(relation, callback)
602-
}
603-
604-
static whereHas(
605-
relation: string,
606-
callback: (query: SubqueryBuilder) => void,
607-
): DeploymentModel {
608-
const instance = new DeploymentModel(null)
609609
const subqueryBuilder = new SubqueryBuilder()
610610

611611
callback(subqueryBuilder)
612612
const conditions = subqueryBuilder.getConditions()
613613

614-
instance.selectFromQuery = instance.selectFromQuery
614+
this.selectFromQuery = this.selectFromQuery
615615
.where(({ exists, selectFrom }: any) => {
616616
let subquery = selectFrom(relation)
617617
.select('1')
@@ -661,7 +661,23 @@ export class DeploymentModel {
661661
return exists(subquery)
662662
})
663663

664-
return instance
664+
return this
665+
}
666+
667+
whereHas(
668+
relation: string,
669+
callback: (query: SubqueryBuilder) => void,
670+
): DeploymentModel {
671+
return this.applyWhereHas(relation, callback)
672+
}
673+
674+
static whereHas(
675+
relation: string,
676+
callback: (query: SubqueryBuilder) => void,
677+
): DeploymentModel {
678+
const instance = new DeploymentModel(null)
679+
680+
return instance.applyWhereHas(relation, callback)
665681
}
666682

667683
applyDoesntHave(relation: string): DeploymentModel {

storage/framework/orm/src/models/Error.ts

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,15 @@ export class ErrorModel {
526526
}
527527

528528
has(relation: string): ErrorModel {
529-
return ErrorModel.has(relation)
529+
this.selectFromQuery = this.selectFromQuery.where(({ exists, selectFrom }: any) =>
530+
exists(
531+
selectFrom(relation)
532+
.select('1')
533+
.whereRef(`${relation}.error_id`, '=', 'errors.id'),
534+
),
535+
)
536+
537+
return this
530538
}
531539

532540
static has(relation: string): ErrorModel {
@@ -553,24 +561,16 @@ export class ErrorModel {
553561
return instance
554562
}
555563

556-
whereHas(
564+
applyWhereHas(
557565
relation: string,
558566
callback: (query: SubqueryBuilder) => void,
559567
): ErrorModel {
560-
return ErrorModel.whereHas(relation, callback)
561-
}
562-
563-
static whereHas(
564-
relation: string,
565-
callback: (query: SubqueryBuilder) => void,
566-
): ErrorModel {
567-
const instance = new ErrorModel(null)
568568
const subqueryBuilder = new SubqueryBuilder()
569569

570570
callback(subqueryBuilder)
571571
const conditions = subqueryBuilder.getConditions()
572572

573-
instance.selectFromQuery = instance.selectFromQuery
573+
this.selectFromQuery = this.selectFromQuery
574574
.where(({ exists, selectFrom }: any) => {
575575
let subquery = selectFrom(relation)
576576
.select('1')
@@ -620,7 +620,23 @@ export class ErrorModel {
620620
return exists(subquery)
621621
})
622622

623-
return instance
623+
return this
624+
}
625+
626+
whereHas(
627+
relation: string,
628+
callback: (query: SubqueryBuilder) => void,
629+
): ErrorModel {
630+
return this.applyWhereHas(relation, callback)
631+
}
632+
633+
static whereHas(
634+
relation: string,
635+
callback: (query: SubqueryBuilder) => void,
636+
): ErrorModel {
637+
const instance = new ErrorModel(null)
638+
639+
return instance.applyWhereHas(relation, callback)
624640
}
625641

626642
applyDoesntHave(relation: string): ErrorModel {

0 commit comments

Comments
 (0)