service

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2026 License: MIT Imports: 9 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) CreateTask

func (s *JiraService) CreateTask(ctx context.Context, input TaskInput) (jira.Issue, error)

CreateTask creates a task assigned to the current Jira account and adds it to the active sprint.

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) 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.

func (*JiraService) UpdateTask added in v0.2.0

func (s *JiraService) UpdateTask(ctx context.Context, issueKey string, input TaskInput) error

UpdateTask updates an issue's summary and description.

type Service

type Service interface {
	LoadSprint(context.Context) (SprintData, error)
	CreateTask(context.Context, TaskInput) (jira.Issue, error)
	UpdateTask(context.Context, string, TaskInput) 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.

type TaskInput

type TaskInput struct {
	Summary     string
	Description string
	StoryPoints *float64
}

TaskInput contains TUI task creation fields.

Jump to

Keyboard shortcuts

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