git-bug/bridge/core/export.go
Amine Hilaly 3e181168ea
[bridge/github] improve export label change function
[bridge/core] rename `EventStatus` to `ExportEvent`
2019-07-05 22:03:00 +02:00

102 lines
1.8 KiB
Go

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,
}
}