Skip to content

Commit

Permalink
chore: wip
Browse files Browse the repository at this point in the history
  • Loading branch information
glennmichael123 committed Feb 10, 2025
1 parent 5c6c3da commit 8fcb390
Show file tree
Hide file tree
Showing 18 changed files with 503 additions and 216 deletions.
39 changes: 27 additions & 12 deletions storage/framework/core/orm/src/generate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1271,7 +1271,15 @@ export async function generateModelString(
}
has(relation: string): ${modelName}Model {
return ${modelName}Model.has(relation)
this.selectFromQuery = this.selectFromQuery.where(({ exists, selectFrom }: any) =>
exists(
selectFrom(relation)
.select('1')
.whereRef(\`\${relation}.${formattedModelName}_id\`, '=', '${tableName}.id'),
),
)
return this
}
static has(relation: string): ${modelName}Model {
Expand All @@ -1298,24 +1306,16 @@ export async function generateModelString(
return instance
}
whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void
): ${modelName}Model {
return ${modelName}Model.whereHas(relation, callback)
}
static whereHas(
applyWhereHas(
relation: string,
callback: (query: SubqueryBuilder) => void
): ${modelName}Model {
const instance = new ${modelName}Model(null)
const subqueryBuilder = new SubqueryBuilder()
callback(subqueryBuilder)
const conditions = subqueryBuilder.getConditions()
instance.selectFromQuery = instance.selectFromQuery
this.selectFromQuery = this.selectFromQuery
.where(({ exists, selectFrom }: any) => {
let subquery = selectFrom(relation)
.select('1')
Expand Down Expand Up @@ -1363,7 +1363,22 @@ export async function generateModelString(
return exists(subquery)
})
return instance
return this
}
whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void
): ${modelName}Model {
return this.applyWhereHas(relation, callback)
}
static whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void
): ${modelName}Model {
const instance = new ${modelName}Model(null)
return instance.applyWhereHas(relation, callback)
}
applyDoesntHave(relation: string): ${modelName}Model {
Expand Down
40 changes: 28 additions & 12 deletions storage/framework/orm/src/models/AccessToken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,15 @@ export class AccessTokenModel {
}

has(relation: string): AccessTokenModel {
return AccessTokenModel.has(relation)
this.selectFromQuery = this.selectFromQuery.where(({ exists, selectFrom }: any) =>
exists(
selectFrom(relation)
.select('1')
.whereRef(`${relation}.accesstoken_id`, '=', 'personal_access_tokens.id'),
),
)

return this
}

static has(relation: string): AccessTokenModel {
Expand All @@ -557,24 +565,16 @@ export class AccessTokenModel {
return instance
}

whereHas(
applyWhereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): AccessTokenModel {
return AccessTokenModel.whereHas(relation, callback)
}

static whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): AccessTokenModel {
const instance = new AccessTokenModel(null)
const subqueryBuilder = new SubqueryBuilder()

callback(subqueryBuilder)
const conditions = subqueryBuilder.getConditions()

instance.selectFromQuery = instance.selectFromQuery
this.selectFromQuery = this.selectFromQuery
.where(({ exists, selectFrom }: any) => {
let subquery = selectFrom(relation)
.select('1')
Expand Down Expand Up @@ -624,7 +624,23 @@ export class AccessTokenModel {
return exists(subquery)
})

return instance
return this
}

whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): AccessTokenModel {
return this.applyWhereHas(relation, callback)
}

static whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): AccessTokenModel {
const instance = new AccessTokenModel(null)

return instance.applyWhereHas(relation, callback)
}

applyDoesntHave(relation: string): AccessTokenModel {
Expand Down
40 changes: 28 additions & 12 deletions storage/framework/orm/src/models/Activity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,15 @@ export class ActivityModel {
}

has(relation: string): ActivityModel {
return ActivityModel.has(relation)
this.selectFromQuery = this.selectFromQuery.where(({ exists, selectFrom }: any) =>
exists(
selectFrom(relation)
.select('1')
.whereRef(`${relation}.activity_id`, '=', 'activities.id'),
),
)

return this
}

static has(relation: string): ActivityModel {
Expand All @@ -580,24 +588,16 @@ export class ActivityModel {
return instance
}

whereHas(
applyWhereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): ActivityModel {
return ActivityModel.whereHas(relation, callback)
}

static whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): ActivityModel {
const instance = new ActivityModel(null)
const subqueryBuilder = new SubqueryBuilder()

callback(subqueryBuilder)
const conditions = subqueryBuilder.getConditions()

instance.selectFromQuery = instance.selectFromQuery
this.selectFromQuery = this.selectFromQuery
.where(({ exists, selectFrom }: any) => {
let subquery = selectFrom(relation)
.select('1')
Expand Down Expand Up @@ -647,7 +647,23 @@ export class ActivityModel {
return exists(subquery)
})

return instance
return this
}

whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): ActivityModel {
return this.applyWhereHas(relation, callback)
}

static whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): ActivityModel {
const instance = new ActivityModel(null)

return instance.applyWhereHas(relation, callback)
}

applyDoesntHave(relation: string): ActivityModel {
Expand Down
40 changes: 28 additions & 12 deletions storage/framework/orm/src/models/Deployment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -567,7 +567,15 @@ export class DeploymentModel {
}

has(relation: string): DeploymentModel {
return DeploymentModel.has(relation)
this.selectFromQuery = this.selectFromQuery.where(({ exists, selectFrom }: any) =>
exists(
selectFrom(relation)
.select('1')
.whereRef(`${relation}.deployment_id`, '=', 'deployments.id'),
),
)

return this
}

static has(relation: string): DeploymentModel {
Expand All @@ -594,24 +602,16 @@ export class DeploymentModel {
return instance
}

whereHas(
applyWhereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): DeploymentModel {
return DeploymentModel.whereHas(relation, callback)
}

static whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): DeploymentModel {
const instance = new DeploymentModel(null)
const subqueryBuilder = new SubqueryBuilder()

callback(subqueryBuilder)
const conditions = subqueryBuilder.getConditions()

instance.selectFromQuery = instance.selectFromQuery
this.selectFromQuery = this.selectFromQuery
.where(({ exists, selectFrom }: any) => {
let subquery = selectFrom(relation)
.select('1')
Expand Down Expand Up @@ -661,7 +661,23 @@ export class DeploymentModel {
return exists(subquery)
})

return instance
return this
}

whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): DeploymentModel {
return this.applyWhereHas(relation, callback)
}

static whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): DeploymentModel {
const instance = new DeploymentModel(null)

return instance.applyWhereHas(relation, callback)
}

applyDoesntHave(relation: string): DeploymentModel {
Expand Down
40 changes: 28 additions & 12 deletions storage/framework/orm/src/models/Error.ts
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,15 @@ export class ErrorModel {
}

has(relation: string): ErrorModel {
return ErrorModel.has(relation)
this.selectFromQuery = this.selectFromQuery.where(({ exists, selectFrom }: any) =>
exists(
selectFrom(relation)
.select('1')
.whereRef(`${relation}.error_id`, '=', 'errors.id'),
),
)

return this
}

static has(relation: string): ErrorModel {
Expand All @@ -553,24 +561,16 @@ export class ErrorModel {
return instance
}

whereHas(
applyWhereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): ErrorModel {
return ErrorModel.whereHas(relation, callback)
}

static whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): ErrorModel {
const instance = new ErrorModel(null)
const subqueryBuilder = new SubqueryBuilder()

callback(subqueryBuilder)
const conditions = subqueryBuilder.getConditions()

instance.selectFromQuery = instance.selectFromQuery
this.selectFromQuery = this.selectFromQuery
.where(({ exists, selectFrom }: any) => {
let subquery = selectFrom(relation)
.select('1')
Expand Down Expand Up @@ -620,7 +620,23 @@ export class ErrorModel {
return exists(subquery)
})

return instance
return this
}

whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): ErrorModel {
return this.applyWhereHas(relation, callback)
}

static whereHas(
relation: string,
callback: (query: SubqueryBuilder) => void,
): ErrorModel {
const instance = new ErrorModel(null)

return instance.applyWhereHas(relation, callback)
}

applyDoesntHave(relation: string): ErrorModel {
Expand Down
Loading

0 comments on commit 8fcb390

Please sign in to comment.