Portfolioitems

English only

Use Cases

Portfolio items are evidence or achievements linked to a user. These items can be added manually or automatically (such as via a certificate). Each item contains a title, description, dates, and optional attachments (e.g., certificates or uploads).

Get single portfolio item

Retrieves one specific portfolio item via ID.

query {
  portfolioItem(id: "uuid-here") {
    id
    title
    description
    startDate
    endDate
    files
  }
}

List all portfolio items of a user

Provides an overview of all portfolio items linked to a user.

query {
  portfolioItems(userId: "uuid-user") {
    id
    title
    startDate
    endDate
  }
}

Create a new portfolio item

Adds a portfolio item to a user, with optional attachments and validity.

mutation {
  createPortfolioItem(
    input: {
      userId: "uuid-user"
      title: "Obtained safety certificate"
      description: "Obtained at location X"
      startDate: "2023-08-05"
      endDate: "2025-08-05"
      files: [
        "https://files.pluvo.co/certificate.pdf"
      ]
    }
  ) {
    portfolioItem {
      id
      title
    }
  }
}

Update existing item

Modifies the content of an existing portfolio item.

mutation {
  updatePortfolioItem(
    id: "uuid-item"
    input: {
      description: "Updated explanation"
    }
  ) {
    portfolioItem {
      id
      description
    }
  }
}

Delete item

Permanently deletes a portfolio item.

mutation {
  deletePortfolioItem(id: "uuid-item") {
    success
  }
}

GraphQL Definitions

Type: PortfolioItem

type PortfolioItem {
  id: ID!
  user: User!
  title: String!
  description: String
  startDate: DateTime!
  endDate: DateTime
  files: [String!]
  createdAt: DateTime
  updatedAt: DateTime
}

Queries

portfolioItem(id: UUID!): PortfolioItem
portfolioItems(userId: UUID): [PortfolioItem!]!

Mutations

createPortfolioItem(input: CreatePortfolioItemInput!): PortfolioItemPayload
updatePortfolioItem(id: UUID!, input: UpdatePortfolioItemInput!): PortfolioItemPayload
deletePortfolioItem(id: UUID!): DeletePortfolioItemPayload

Notes

  • Files are added via URLs to Pluvo's file service (https://files.pluvo.co/...).
  • startDate represents the moment of acquisition (e.g., date obtained).
  • endDate is optional and represents a potential validity period.
  • PortfolioItem updates and creations are also sent via webhooks (PORTFOLIO_ITEM_CREATED, etc.).
Close notification