service

package
v0.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 18, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package service coordinates Jira, report, and mail operations for the TUI.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DailyDraft

type DailyDraft struct {
	Subject string
	Body    string
}

DailyDraft is a generated report and its target email metadata.

type Factory

type Factory func(config.Config) (Service, error)

Factory creates a Service from config.

type JiraService

type JiraService struct {
	// contains filtered or unexported fields
}

JiraService implements Service with real Jira and IMAP clients.

func (*JiraService) AttachmentMeta added in v0.4.0

func (s *JiraService) AttachmentMeta(ctx context.Context) (jira.AttachmentMeta, error)

AttachmentMeta returns Jira's attachment availability and tenant size limit.

func (*JiraService) DeleteTask added in v0.3.0

func (s *JiraService) DeleteTask(ctx context.Context, issueKey string) error

DeleteTask permanently deletes an issue.

func (*JiraService) GenerateReport

func (s *JiraService) GenerateReport(ctx context.Context, issues []jira.Issue) (DailyDraft, error)

GenerateReport generates a daily report from visible sprint issues and changelogs.

func (*JiraService) LoadSprint

func (s *JiraService) LoadSprint(ctx context.Context) (SprintData, error)

LoadSprint loads current active sprint issues assigned to the user.

func (*JiraService) MoveToStatus

func (s *JiraService) MoveToStatus(ctx context.Context, issueKey, target string) (jira.Status, error)

MoveToStatus applies the first transition matching a target bucket such as done or indeterminate.

func (*JiraService) SaveDraft

func (s *JiraService) SaveDraft(ctx context.Context, draft DailyDraft) error

SaveDraft appends the report as a draft email.

func (*JiraService) SaveTask added in v0.4.0

func (s *JiraService) SaveTask(ctx context.Context, journal tasksave.Journal, persist func(tasksave.Journal) error) (tasksave.Journal, error)

SaveTask resumes a journal and persists each accepted Jira step before continuing.

func (*JiraService) TransitionIssue

func (s *JiraService) TransitionIssue(ctx context.Context, issueKey, transitionID string) error

TransitionIssue applies a transition id.

func (*JiraService) Transitions

func (s *JiraService) Transitions(ctx context.Context, issueKey string) ([]jira.Transition, error)

Transitions returns valid issue transitions.

func (*JiraService) UpdateStoryPoints

func (s *JiraService) UpdateStoryPoints(ctx context.Context, issueKey string, points *float64) error

UpdateStoryPoints updates the configured story-points field.

type Service

type Service interface {
	LoadSprint(context.Context) (SprintData, error)
	SaveTask(context.Context, tasksave.Journal, func(tasksave.Journal) error) (tasksave.Journal, error)
	AttachmentMeta(context.Context) (jira.AttachmentMeta, error)
	DeleteTask(context.Context, string) error
	Transitions(context.Context, string) ([]jira.Transition, error)
	TransitionIssue(context.Context, string, string) error
	MoveToStatus(context.Context, string, string) (jira.Status, error)
	UpdateStoryPoints(context.Context, string, *float64) error
	GenerateReport(context.Context, []jira.Issue) (DailyDraft, error)
	SaveDraft(context.Context, DailyDraft) error
}

Service defines the app workflow operations.

func NewJiraService

func NewJiraService(cfg config.Config) (Service, error)

NewJiraService creates a production service using Jira Cloud and IONOS IMAP.

type SprintData

type SprintData struct {
	ProjectName string
	Sprint      jira.Sprint
	Issues      []jira.Issue
}

SprintData is the data needed by the main screen.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL