DataFed icon indicating copy to clipboard operation
DataFed copied to clipboard

[DAPS-1357] Type Interfaces

Open AronPerez opened this issue 8 months ago • 1 comments

PR Description

Tasks

  • [ ] - A description of the PR has been provided, and a diagram included if it is a new feature.
  • [ ] - Formatter has been run
  • [ ] - CHANGELOG comment has been added
  • [ ] - Labels have been assigned to the pr
  • [ ] - A reviwer has been added
  • [ ] - A user has been assigned to work on the pr
  • [ ] - If new feature a unit test has been added

Summary by Sourcery

New Features:

  • Introduce TypeScript interface definitions and enums for permissions, UI components, record models, search, transfer, user, task, and common entities

AronPerez avatar May 18 '25 07:05 AronPerez

Reviewer's Guide

This PR adds a comprehensive set of TypeScript enums and interfaces under src/types/interfaces, covering permissions, constants, UI components, domain records, transfers, search, core API models, user/session, and task management, along with a barrel export file.

File-Level Changes

Change Details Files
Introduce permission, metadata, dependency, and annotation constants and enums
  • Added Permission enum and bitmask constants for access control
  • Defined MD_MAX_SIZE and PAYLOAD_MAX_SIZE limits
  • Introduced DependencyDirection and DependencyType enums
  • Added NoteType, NoteState, NoteMask enums with label mappings
src/types/interfaces/constants.ts
Define UI component interfaces
  • Created DialogOptions and DialogButton interfaces
  • Added ToastNotification interface
  • Defined UITheme, UILayout, and UIState interfaces
src/types/interfaces/ui.ts
Add domain record interfaces
  • Defined DataRecord, CollectionRecord, ProjectRecord, AllocationRecord, and RepositoryRecord
  • Added Dependency, Annotation, and Schema interfaces
src/types/interfaces/record.ts
Add transfer and integration interfaces
  • Introduced EndpointEntityType enum and Endpoint interface
  • Defined Transfer, TransferConfig, TransferStats interfaces
  • Added EncryptionMode and TransferMode enums
src/types/interfaces/transfer.ts
Implement search-related enums and interfaces
  • Defined SearchMode and SortType enums
  • Created SearchQuery, SearchResult, SavedSearch interfaces
  • Added SearchFacet and SearchResultWithFacets interfaces
src/types/interfaces/search.ts
Create core API and utility interfaces
  • Added BaseRecord and ApiResponse interfaces
  • Defined ACL interface
  • Introduced PaginationParams, SortParams, FilterParams, QueryParams
src/types/interfaces/common.ts
Define user and session interfaces
  • Created User, UserGroup, UserSettings interfaces
  • Added AuthToken and UserSession interfaces
src/types/interfaces/user.ts
Introduce task management enums and interfaces
  • Defined TaskType and TaskStatus enums
  • Added Task, TaskFilter, TaskStatistics interfaces
src/types/interfaces/tasks.ts
Add barrel export for interfaces
  • Export all interface modules via index.ts
src/types/interfaces/index.ts

Possibly linked issues

  • #1357: The PR adds TypeScript interface definitions for various data models and concepts.

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an issue from a review comment by replying to it. You can also reply to a review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull request title to generate a title at any time. You can also comment @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in the pull request body to generate a PR summary at any time exactly where you want it. You can also comment @sourcery-ai summary on the pull request to (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the pull request to resolve all Sourcery comments. Useful if you've already addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull request to dismiss all existing Sourcery reviews. Especially useful if you want to start fresh with a new review - don't forget to comment @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

  • Contact our support team for questions or feedback.
  • Visit our documentation for detailed guides and information.
  • Keep in touch with the Sourcery team by following us on X/Twitter, LinkedIn or GitHub.

sourcery-ai[bot] avatar May 18 '25 07:05 sourcery-ai[bot]