diff options
Diffstat (limited to 'bridge/core/export.go')
-rw-r--r-- | bridge/core/export.go | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/bridge/core/export.go b/bridge/core/export.go new file mode 100644 index 00000000..080ced80 --- /dev/null +++ b/bridge/core/export.go @@ -0,0 +1,101 @@ +package core + +import "fmt" + +type ExportEvent int + +const ( + _ ExportEvent = iota + ExportEventBug + ExportEventComment + ExportEventCommentEdition + ExportEventStatusChange + ExportEventTitleEdition + ExportEventLabelChange + ExportEventNothing +) + +type ExportResult struct { + Err error + Event ExportEvent + ID string + Reason string +} + +func (er ExportResult) String() string { + switch er.Event { + case ExportEventBug: + return "new issue" + case ExportEventComment: + return "new comment" + case ExportEventCommentEdition: + return "updated comment" + case ExportEventStatusChange: + return "changed status" + case ExportEventTitleEdition: + return "changed title" + case ExportEventLabelChange: + return "changed label" + case ExportEventNothing: + return fmt.Sprintf("no event: %v", er.Reason) + default: + panic("unknown export result") + } +} + +func NewExportError(err error, reason string) ExportResult { + return ExportResult{ + Err: err, + Reason: reason, + } +} + +func NewExportNothing(id string, reason string) ExportResult { + return ExportResult{ + ID: id, + Reason: reason, + Event: ExportEventNothing, + } +} + +func NewExportBug(id string) ExportResult { + return ExportResult{ + ID: id, + Event: ExportEventBug, + } +} + +func NewExportComment(id string) ExportResult { + return ExportResult{ + ID: id, + Event: ExportEventComment, + } +} + +func NewExportCommentEdition(id string) ExportResult { + return ExportResult{ + ID: id, + Event: ExportEventCommentEdition, + } +} + +func NewExportStatusChange(id string) ExportResult { + return ExportResult{ + ID: id, + Event: ExportEventStatusChange, + } +} + +func NewExportLabelChange(id string) ExportResult { + return ExportResult{ + ID: id, + Event: ExportEventLabelChange, + } +} + +func NewExportTitleEdition(id string) ExportResult { + return ExportResult{ + ID: id, + Event: ExportEventTitleEdition, + } +} |