Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/deploy-plaster-calculator-functions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
- main
paths:
- functions/plaster-calculator-functions/**
- generated/example-data-connector/**
- generated/data-connector-admin/**

concurrency:
group: deploy-plaster-calculator-functions
Expand Down
2 changes: 1 addition & 1 deletion apps/plaster-calculator-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"start": "next start"
},
"dependencies": {
"@generated/questionnaires-data-connector-web": "workspace:*",
"@generated/data-connector-web": "workspace:*",
"@libraries/plaster-calculator-common": "workspace:*",
"@libraries/plaster-calculator-ui": "workspace:*",
"@libraries/plaster-calculator-web-core": "workspace:*",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,5 @@
import {
connectorConfig,
getQuestionnaireTemplateRef,
listQuestionnaireTemplates,
listQuestionnaireTemplatesRef,
} from "@generated/questionnaires-data-connector-web";
import {
useCreateQuestionnaireTemplate,
useCreateQuestionnaireTemplateQuestion,
useDeleteQuestionnaireTemplate,
useDeleteQuestionnaireTemplateQuestion,
useGetQuestionnaireTemplate,
useListQuestionnaireTemplates,
useUpdateQuestionnaireTemplateName,
useUpdateQuestionnaireTemplateQuestion,
} from "@generated/questionnaires-data-connector-web/react";
import * as DataConnector from "@generated/data-connector-web";
import * as DataConnectorReact from "@generated/data-connector-web/react";
import { FirebaseService } from "@libraries/plaster-calculator-web-core";
import { useNotificationsManager } from "@libraries/uikit-web";
import { useQueryClient } from "@tanstack/react-query";
Expand All @@ -36,22 +22,26 @@ type UpdateTemplate = (
) => Promise<void>;
type PageDispatch = Dispatch<QuestionnaireTemplatesPageAction>;

const dataConnect = FirebaseService.getDataConnect(connectorConfig);
const questionnaireTemplatesRef = listQuestionnaireTemplatesRef(dataConnect);
const dataConnect = FirebaseService.getDataConnect(
DataConnector.connectorConfig,
);
const questionnaireTemplatesRef =
DataConnector.listQuestionnaireTemplatesRef(dataConnect);

export function useQuestionnaireTemplates() {
const { data } = useListQuestionnaireTemplates(dataConnect);
const { data } =
DataConnectorReact.useListQuestionnaireTemplates(dataConnect);
return data?.questionnaireTemplates ?? [];
}

export function useRefreshQuestionnaireTemplatesCallback(): RefreshTemplates {
const queryClient = useQueryClient();

return useCallback(async () => {
const refreshedTemplates = await listQuestionnaireTemplates(
dataConnect,
{ fetchPolicy: QueryFetchPolicy.SERVER_ONLY },
);
const refreshedTemplates =
await DataConnector.listQuestionnaireTemplates(dataConnect, {
fetchPolicy: QueryFetchPolicy.SERVER_ONLY,
});
queryClient.setQueryData(
[
questionnaireTemplatesRef.name,
Expand All @@ -67,9 +57,9 @@ export function useCreateQuestionnaireTemplateCallback(
dispatch: PageDispatch,
) {
const { mutateAsync: createTemplate } =
useCreateQuestionnaireTemplate(dataConnect);
DataConnectorReact.useCreateQuestionnaireTemplate(dataConnect);
const { mutateAsync: createQuestion } =
useCreateQuestionnaireTemplateQuestion(dataConnect);
DataConnectorReact.useCreateQuestionnaireTemplateQuestion(dataConnect);
const { notify } = useNotificationsManager();

return useCallback(
Expand Down Expand Up @@ -117,7 +107,7 @@ export function useDeleteQuestionnaireTemplateCallback(
dispatch: PageDispatch,
) {
const { mutateAsync: deleteTemplate } =
useDeleteQuestionnaireTemplate(dataConnect);
DataConnectorReact.useDeleteQuestionnaireTemplate(dataConnect);
const { notify } = useNotificationsManager();

return useCallback(
Expand Down Expand Up @@ -161,7 +151,7 @@ export function useQuestionnaireTemplateDetails(templateId: string | null): {
readonly template: QuestionnaireTemplateDetails | null;
readonly isLoading: boolean;
} {
const { data, isLoading } = useGetQuestionnaireTemplate(
const { data, isLoading } = DataConnectorReact.useGetQuestionnaireTemplate(
dataConnect,
{ id: templateId ?? "" },
{ enabled: templateId !== null },
Expand All @@ -178,13 +168,13 @@ export function useUpdateQuestionnaireTemplateCallback(
dispatch: PageDispatch,
): UpdateTemplate {
const { mutateAsync: updateName } =
useUpdateQuestionnaireTemplateName(dataConnect);
DataConnectorReact.useUpdateQuestionnaireTemplateName(dataConnect);
const { mutateAsync: updateQuestion } =
useUpdateQuestionnaireTemplateQuestion(dataConnect);
DataConnectorReact.useUpdateQuestionnaireTemplateQuestion(dataConnect);
const { mutateAsync: createQuestion } =
useCreateQuestionnaireTemplateQuestion(dataConnect);
DataConnectorReact.useCreateQuestionnaireTemplateQuestion(dataConnect);
const { mutateAsync: deleteQuestion } =
useDeleteQuestionnaireTemplateQuestion(dataConnect);
DataConnectorReact.useDeleteQuestionnaireTemplateQuestion(dataConnect);
const { notify } = useNotificationsManager();
const queryClient = useQueryClient();

Expand Down Expand Up @@ -235,9 +225,12 @@ export function useUpdateQuestionnaireTemplateCallback(
),
);

const templateRef = getQuestionnaireTemplateRef(dataConnect, {
id: template.id,
});
const templateRef = DataConnector.getQuestionnaireTemplateRef(
dataConnect,
{
id: template.id,
},
);
await queryClient.invalidateQueries({
queryKey: [templateRef.name, templateRef.variables ?? null],
});
Expand Down
2 changes: 1 addition & 1 deletion apps/storybook-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"storybook": "storybook dev --port 6006"
},
"dependencies": {
"@generated/questionnaires-data-connector-web": "workspace:*",
"@generated/data-connector-web": "workspace:*",
"@libraries/plaster-calculator-common": "workspace:*",
"@libraries/plaster-calculator-ui": "workspace:*",
"@libraries/uikit-web": "workspace:*",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useListQuestionnaireTemplates } from "@generated/questionnaires-data-connector-web/react";
import * as DataConnectorReact from "@generated/data-connector-web/react";
import { QuestionnaireTemplateCardGridList } from "@libraries/plaster-calculator-ui";
import { fn } from "storybook/test";

Expand Down Expand Up @@ -47,7 +47,7 @@ export const FromDataConnectHook: Story = {
},
},
render: () => {
const { data } = useListQuestionnaireTemplates({
const { data } = DataConnectorReact.useListQuestionnaireTemplates({
enabled: false,
initialData: {
questionnaireTemplates: [...questionnaireTemplates],
Expand Down
9 changes: 9 additions & 0 deletions data/connector/connector.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
connectorId: data-connector
generate:
adminNodeSdk:
- package: "@generated/data-connector-admin"
outputDir: ../../generated/data-connector-admin
javascriptSdk:
- package: "@generated/data-connector-web"
outputDir: ../../generated/data-connector-web
react: true
190 changes: 190 additions & 0 deletions data/connector/projects.mutations.gql
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
mutation CreateProjectFromUpload(
$id: UUID!
$ownerId: String!
$accountId: UUID
$name: String!
$address: String
$originalFileName: String!
$uploadType: String!
$originalPath: String!
$status: String!
$salesStatus: String = "QUOTING"
$pageCount: Int!
) @auth(level: NO_ACCESS) {
project_insert(
data: {
id: $id
ownerId: $ownerId
accountId: $accountId
name: $name
address: $address
originalFileName: $originalFileName
uploadType: $uploadType
originalPath: $originalPath
status: $status
salesStatus: $salesStatus
pageCount: $pageCount
createdAt_expr: "request.time"
updatedAt_expr: "request.time"
}
)
}

mutation UpdateProject(
$id: UUID!
$name: String
$accountId: UUID
$address: String
$salesStatus: String
) @auth(level: NO_ACCESS) {
project_update(
id: $id
data: {
name: $name
accountId: $accountId
address: $address
salesStatus: $salesStatus
updatedAt_expr: "request.time"
}
)
}

mutation RenameProject($id: UUID!, $name: String!) @auth(level: NO_ACCESS) {
project_update(
id: $id
data: { name: $name, updatedAt_expr: "request.time" }
)
}

mutation TouchProject($id: UUID!, $status: String, $processingError: String)
@auth(level: NO_ACCESS) {
project_update(
id: $id
data: {
status: $status
processingError: $processingError
updatedAt_expr: "request.time"
}
)
}

mutation DeleteFloorplanPages($projectId: UUID!) @auth(level: NO_ACCESS) {
floorplanPage_deleteMany(where: { projectId: { eq: $projectId } })
}

mutation DeleteProject($id: UUID!) @auth(level: NO_ACCESS) {
project_delete(id: $id)
}

mutation CreateFloorplanPage(
$projectId: UUID!
$pageNumber: Int!
$status: String!
$processingError: String
$sourceImagePath: String
$previewImagePath: String
$rawJsonPath: String
$rawFloorplanPath: String
$overlayJson: String
$scaleMmPerPx: Float
$ceilingHeightMm: Float
$referencePointsJson: String
$referenceLengthMm: Float
$processingStrategy: String
$processingMetadataJson: String
) @auth(level: NO_ACCESS) {
floorplanPage_insert(
data: {
projectId: $projectId
pageNumber: $pageNumber
status: $status
processingError: $processingError
sourceImagePath: $sourceImagePath
previewImagePath: $previewImagePath
rawJsonPath: $rawJsonPath
rawFloorplanPath: $rawFloorplanPath
overlayJson: $overlayJson
scaleMmPerPx: $scaleMmPerPx
ceilingHeightMm: $ceilingHeightMm
referencePointsJson: $referencePointsJson
referenceLengthMm: $referenceLengthMm
processingStrategy: $processingStrategy
processingMetadataJson: $processingMetadataJson
createdAt_expr: "request.time"
updatedAt_expr: "request.time"
}
)
}

mutation UpdateFloorplanPageAnalysis(
$id: UUID!
$status: String!
$processingError: String
$sourceImagePath: String
$previewImagePath: String
$rawJsonPath: String
$rawFloorplanPath: String
$overlayJson: String
$scaleMmPerPx: Float
$ceilingHeightMm: Float
$referencePointsJson: String
$referenceLengthMm: Float
$processingStrategy: String
$processingMetadataJson: String
) @auth(level: NO_ACCESS) {
floorplanPage_update(
id: $id
data: {
status: $status
processingError: $processingError
sourceImagePath: $sourceImagePath
previewImagePath: $previewImagePath
rawJsonPath: $rawJsonPath
rawFloorplanPath: $rawFloorplanPath
overlayJson: $overlayJson
scaleMmPerPx: $scaleMmPerPx
ceilingHeightMm: $ceilingHeightMm
referencePointsJson: $referencePointsJson
referenceLengthMm: $referenceLengthMm
processingStrategy: $processingStrategy
processingMetadataJson: $processingMetadataJson
updatedAt_expr: "request.time"
}
)
}

mutation UpdateFloorplanPage(
$id: UUID!
$overlayJson: String
$scaleMmPerPx: Float
$ceilingHeightMm: Float
$referencePointsJson: String
$referenceLengthMm: Float
) @auth(level: NO_ACCESS) {
floorplanPage_update(
id: $id
data: {
overlayJson: $overlayJson
scaleMmPerPx: $scaleMmPerPx
ceilingHeightMm: $ceilingHeightMm
referencePointsJson: $referencePointsJson
referenceLengthMm: $referenceLengthMm
updatedAt_expr: "request.time"
}
)
}

mutation UpdateFloorplanPages(
$projectId: UUID!
$scaleMmPerPx: Float
$ceilingHeightMm: Float
) @auth(level: NO_ACCESS) {
floorplanPage_updateMany(
where: { projectId: { eq: $projectId } }
data: {
scaleMmPerPx: $scaleMmPerPx
ceilingHeightMm: $ceilingHeightMm
updatedAt_expr: "request.time"
}
)
}
Loading
Loading