Skip to content

Commit

Permalink
WIP e2e typing for projects with no base entity props
Browse files Browse the repository at this point in the history
  • Loading branch information
alexeh committed Nov 8, 2024
1 parent a97283a commit 3aa8496
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 48 deletions.
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import { ProjectType } from "@shared/contracts/projects.contract";
import { Project } from "@shared/entities/projects.entity";
import { createColumnHelper } from "@tanstack/react-table";

const columnHelper = createColumnHelper<
Partial<Project> & {
// ! these types should be part of the Project entity eventually, we are adding them here to silent TS for now
financialFeasibility: number;
legalFeasibility: number;
implementationFeasibility: number;
socialFeasibility: number;
securityRating: number;
availabilityOfExperiencedLabor: number;
availabilityOfAlternatingFunding: number;
coastalProtectionBenefit: number;
biodiversityBenefit: number;
// financialFeasibility: number;
// legalFeasibility: number;
// implementationFeasibility: number;
// socialFeasibility: number;
// securityRating: number;
// availabilityOfExperiencedLabor: number;
// availabilityOfAlternatingFunding: number;
// coastalProtectionBenefit: number;
// biodiversityBenefit: number;
}
>();

Expand All @@ -21,40 +21,40 @@ export const TABLE_COLUMNS = [
enableSorting: true,
header: () => <span>Project Name</span>,
}),
columnHelper.accessor("financialFeasibility", {
enableSorting: true,
header: () => <span>Financial feasibility</span>,
}),
columnHelper.accessor("legalFeasibility", {
enableSorting: true,
header: () => <span>Legal Feasibility</span>,
}),
columnHelper.accessor("implementationFeasibility", {
enableSorting: true,
header: () => <span>Implementation feasibility</span>,
}),
columnHelper.accessor("socialFeasibility", {
enableSorting: true,
header: () => <span>Social Feasibility</span>,
}),
columnHelper.accessor("securityRating", {
enableSorting: true,
header: () => <span>Security Rating</span>,
}),
columnHelper.accessor("availabilityOfExperiencedLabor", {
enableSorting: true,
header: () => <span>Availability of experienced labor</span>,
}),
columnHelper.accessor("availabilityOfAlternatingFunding", {
enableSorting: true,
header: () => <span>Availability of alternating funding</span>,
}),
columnHelper.accessor("coastalProtectionBenefit", {
enableSorting: true,
header: () => <span>Coastal Protection benefit</span>,
}),
columnHelper.accessor("biodiversityBenefit", {
enableSorting: true,
header: () => <span>Biodiversity benefit</span>,
}),
// columnHelper.accessor("financialFeasibility", {
// enableSorting: true,
// header: () => <span>Financial feasibility</span>,
// }),
// columnHelper.accessor("legalFeasibility", {
// enableSorting: true,
// header: () => <span>Legal Feasibility</span>,
// }),
// columnHelper.accessor("implementationFeasibility", {
// enableSorting: true,
// header: () => <span>Implementation feasibility</span>,
// }),
// columnHelper.accessor("socialFeasibility", {
// enableSorting: true,
// header: () => <span>Social Feasibility</span>,
// }),
// columnHelper.accessor("securityRating", {
// enableSorting: true,
// header: () => <span>Security Rating</span>,
// }),
// columnHelper.accessor("availabilityOfExperiencedLabor", {
// enableSorting: true,
// header: () => <span>Availability of experienced labor</span>,
// }),
// columnHelper.accessor("availabilityOfAlternatingFunding", {
// enableSorting: true,
// header: () => <span>Availability of alternating funding</span>,
// }),
// columnHelper.accessor("coastalProtectionBenefit", {
// enableSorting: true,
// header: () => <span>Coastal Protection benefit</span>,
// }),
// columnHelper.accessor("biodiversityBenefit", {
// enableSorting: true,
// header: () => <span>Biodiversity benefit</span>,
// }),
];
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,10 @@ export function ScoredCardPrioritizationTable() {
{
query: {
...filtersToQueryParams(filters),

filter: {
activitySubtype: [""],
},
// fields: TABLE_COLUMNS.map((column) => column.accessorKey),
// ...(sorting.length > 0 && {
// sort: sorting.map((sort) => `${sort.desc ? "" : "-"}${sort.id}`),
Expand Down
7 changes: 6 additions & 1 deletion shared/contracts/projects.contract.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@ import {
ProjectMapFilters,
} from "@shared/dtos/projects/projects-map.dto";
import { generateEntityQuerySchema } from "@shared/schemas/query-param.schema";
import { BaseEntity } from "typeorm";

const contract = initContract();

export type ProjectType = Omit<Project, keyof BaseEntity>;

export const projectsQuerySchema = generateEntityQuerySchema(Project);
export const projectsContract = contract.router({
getProjects: {
Expand All @@ -23,7 +26,9 @@ export const projectsContract = contract.router({
responses: {
200: contract.type<ApiPaginationResponse<Project>>(),
},
query: projectsQuerySchema,
query: projectsQuerySchema.merge(
z.object({ costRangeSelector: z.string().optional() }),
),
},
getProject: {
method: "GET",
Expand Down
2 changes: 1 addition & 1 deletion shared/entities/projects.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export class Project extends BaseEntity {
length: 255,
nullable: true,
})
activitySubtype: string;
activitySubtype: RESTORATION_ACTIVITY_SUBTYPE;

@Column({ name: "project_size", type: "decimal" })
projectSize: number;
Expand Down

0 comments on commit 3aa8496

Please sign in to comment.