Skip to content

Commit

Permalink
fix: Release filter cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
adityachoudhari26 committed Oct 19, 2024
1 parent ce0d068 commit 7816179
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
SelectTrigger,
SelectValue,
} from "@ctrlplane/ui/select";
import { TargetOperator } from "@ctrlplane/validators/targets";
import { ReleaseOperator } from "@ctrlplane/validators/releases";

import type { ReleaseConditionRenderProps } from "./release-condition-props";
import { api } from "~/trpc/react";
Expand All @@ -34,17 +34,17 @@ export const MetadataConditionRender: React.FC<
const setKey = (key: string) => onChange({ ...condition, key });

const setValue = (value: string) =>
condition.operator !== TargetOperator.Null &&
condition.operator !== ReleaseOperator.Null &&
onChange({ ...condition, value });

const setOperator = (
operator:
| TargetOperator.Equals
| TargetOperator.Like
| TargetOperator.Regex
| TargetOperator.Null,
| ReleaseOperator.Equals
| ReleaseOperator.Like
| ReleaseOperator.Regex
| ReleaseOperator.Null,
) =>
operator === TargetOperator.Null
operator === ReleaseOperator.Null
? onChange({ ...condition, operator, value: undefined })
: onChange({ ...condition, operator, value: condition.value ?? "" });

Expand Down Expand Up @@ -94,10 +94,10 @@ export const MetadataConditionRender: React.FC<
value={condition.operator}
onValueChange={(
v:
| TargetOperator.Equals
| TargetOperator.Like
| TargetOperator.Regex
| TargetOperator.Null,
| ReleaseOperator.Equals
| ReleaseOperator.Like
| ReleaseOperator.Regex
| ReleaseOperator.Null,
) => setOperator(v)}
>
<SelectTrigger className="rounded-none text-muted-foreground hover:bg-neutral-800/50">
Expand All @@ -107,21 +107,21 @@ export const MetadataConditionRender: React.FC<
/>
</SelectTrigger>
<SelectContent className="text-muted-foreground">
<SelectItem value={TargetOperator.Equals}>Equals</SelectItem>
<SelectItem value={TargetOperator.Regex}>Regex</SelectItem>
<SelectItem value={TargetOperator.Like}>Like</SelectItem>
<SelectItem value={TargetOperator.Null}>Is Null</SelectItem>
<SelectItem value={ReleaseOperator.Equals}>Equals</SelectItem>
<SelectItem value={ReleaseOperator.Regex}>Regex</SelectItem>
<SelectItem value={ReleaseOperator.Like}>Like</SelectItem>
<SelectItem value={ReleaseOperator.Null}>Is Null</SelectItem>
</SelectContent>
</Select>
</div>

{condition.operator !== TargetOperator.Null ? (
{condition.operator !== ReleaseOperator.Null ? (
<div className="col-span-4">
<Input
placeholder={
condition.operator === TargetOperator.Regex
condition.operator === ReleaseOperator.Regex
? "^[a-zA-Z]+$"
: condition.operator === TargetOperator.Like
: condition.operator === ReleaseOperator.Like
? "%value%"
: "Value"
}
Expand Down
16 changes: 10 additions & 6 deletions packages/api/src/router/release.ts
Original file line number Diff line number Diff line change
Expand Up @@ -485,19 +485,23 @@ export const releaseRouter = createTRPCRouter({
systemSlug: z.string().optional(),
}),
)
.query(({ input }) => {
.query(async ({ input }) => {
const baseQuery = db
.selectDistinct({ key: releaseMetadata.key })
.from(release)
.innerJoin(releaseMetadata, eq(releaseMetadata.releaseId, release.id))
.innerJoin(deployment, eq(release.deploymentId, deployment.id))
.innerJoin(system, eq(deployment.systemId, system.id));
.innerJoin(system, eq(deployment.systemId, system.id))
.innerJoin(workspace, eq(system.workspaceId, workspace.id));

if (input.systemSlug != null)
return baseQuery.where(eq(system.slug, input.systemSlug));
return baseQuery.where(
and(
eq(system.slug, input.systemSlug),
eq(workspace.slug, input.workspaceSlug),
),
);

return baseQuery
.innerJoin(workspace, eq(system.workspaceId, workspace.id))
.where(eq(workspace.slug, input.workspaceSlug));
return baseQuery.where(eq(workspace.slug, input.workspaceSlug));
}),
});

0 comments on commit 7816179

Please sign in to comment.