Files
speckle-server/packages/server/modules/core/helpers/project.ts
T
Kristaps Fabians Geikins 4db1531064 feat: "workspace" project visibility (#4704)
* WIP new visi

* test fixes

* visibility seems to work

* authz policies & authorizeResolver updated

* various test fixes

* users tests

* frontend changes

* minor adjustments

* shared test fix

* test fixes

* force rerun CI
2025-05-14 15:20:26 +03:00

44 lines
1.3 KiB
TypeScript

import { ProjectCreateArgs } from '@/modules/core/domain/projects/operations'
import {
ProjectVisibility,
StreamCreateInput
} from '@/modules/core/graph/generated/graphql'
import { ProjectRecordVisibility } from '@/modules/core/helpers/types'
import { throwUncoveredError } from '@speckle/shared'
import { has } from 'lodash'
export const isProjectCreateInput = (
i: StreamCreateInput | ProjectCreateArgs
): i is ProjectCreateArgs => has(i, 'visibility')
export const mapGqlToDbProjectVisibility = (
visibility: ProjectVisibility
): ProjectRecordVisibility => {
switch (visibility) {
case ProjectVisibility.Public:
case ProjectVisibility.Unlisted:
return ProjectRecordVisibility.Public
case ProjectVisibility.Private:
return ProjectRecordVisibility.Private
case ProjectVisibility.Workspace:
return ProjectRecordVisibility.Workspace
default:
throwUncoveredError(visibility)
}
}
export const mapDbToGqlProjectVisibility = (
visibility: ProjectRecordVisibility
): ProjectVisibility => {
switch (visibility) {
case ProjectRecordVisibility.Public:
return ProjectVisibility.Public
case ProjectRecordVisibility.Private:
return ProjectVisibility.Private
case ProjectRecordVisibility.Workspace:
return ProjectVisibility.Workspace
default:
throwUncoveredError(visibility)
}
}