snowballtools-base/packages/backend/src/schema.gql
Nabarun Gogoi c2b997a17b Add GQL query for projects search in app (#38)
* Find projects based on search text

* Use get search projects client method in UI

* Fetch searched projects inside useCombobox hook

* Get searched project from project entity

* Remove non required search projects filtering

* Fetch projects if user is owner or project member

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30

133 lines
2.2 KiB
GraphQL

enum Role {
Owner
Maintainer
Reader
}
enum Permission {
View
Edit
}
enum Environment {
Production
Preview
Development
}
enum DeploymentStatus {
Building
Ready
Error
}
enum DomainStatus {
Live
Pending
}
type User {
id: String!
name: String!
email: String!
organizations: [Organization!]
projects: [Project!]
createdAt: String!
updatedAt: String!
}
type Organization {
id: String!
name: String!
projects: [Project!]
createdAt: String!
updatedAt: String!
members: [OrganizationMember!]
}
type OrganizationMember {
id: String!
member: User!
role: Role!
createdAt: String!
updatedAt: String!
}
type Project {
id: String!
owner: User!
deployments: [Deployment!]
name: String!
repository: String!
prodBranch: String!
description: String
template: String
framework: String!
webhooks: [String!]
members: [ProjectMember!]
environmentVariables: [EnvironmentVariable!]
createdAt: String!
updatedAt: String!
organization: Organization!
}
type ProjectMember {
id: String!
member: User!
permissions: [Permission!]!
createdAt: String!
updatedAt: String!
}
type Deployment {
id: String!
domain: Domain
branch: String!
commitHash: String!
title: String!
environment: Environment!
isCurrent: Boolean!
status: DeploymentStatus!
createdAt: String!
updatedAt: String!
}
type Domain {
id: String!
branch: String!
name: String!
isRedirected: Boolean!
status: DomainStatus!
createdAt: String!
updatedAt: String!
}
type EnvironmentVariable {
id: String!
environments: [Environment!]!
key: String!
value: String!
createdAt: String!
updatedAt: String!
}
type Query {
user: User!
organizations: [Organization!]
projects: [Project!]
deployments(projectId: String!): [Deployment!]
projectMembers(projectId: String!): [ProjectMember!]
searchProjects(searchText: String!): [Project!]
}
type Mutation {
removeMember(memberId: String!): Boolean!
addEnvironmentVariables(projectId: String!, environmentVariables: [AddEnvironmentVariableInput!]): Boolean!
}
input AddEnvironmentVariableInput {
environments: [Environment!]!
key: String!
value: String!
}