Skip to content

Feature: ticket API layer (single backend behind an interface) #5

Description

@CoreyAllenAudio

Context

The app needs to talk to a helpdesk ticket backend (GET/POST). We have one known
backend (the Swagger/REST ticket API). We want clean networking now, with a seam
that allows other backends later — WITHOUT building those other backends yet (YAGNI).

Scope

Define a TicketApi interface and implement ONE concrete adapter for the known
REST endpoints. Additional backends are explicitly out of scope; they'd implement
the same interface in a future issue.

Tasks

  • Define a TicketApi interface (e.g. getTickets(), createTicket())
  • Add a networking client (HTTP lib of choice)
  • Implement one concrete adapter for the known Swagger endpoints
  • Map JSON responses to Kotlin data models
  • Basic error/timeout handling
  • (Optional) a fake/in-memory implementation for previews & tests

Acceptance Criteria

  • TicketApi interface exists with GET + POST operations
  • One real implementation performs a GET and a POST against the endpoints
  • Responses deserialize into typed models
  • Adding a second backend requires only a new implementation of the interface

Notes / design

The interface is the extensibility point. Do NOT implement adapters for other
helpdesk products until there's a real need.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

featureIntroduces a new feature to the codebase

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions