aboutsummaryrefslogblamecommitdiffstats
path: root/bridge/core/export.go
blob: 080ced803574e6ae97219a3c24aef90b9b9f27ff (plain) (tree)
1
2
3
4
5
6
7



            
                    

       







                                 



                          
                          





                                        
                            
                                  
                                
                                    
                                       
                                        
                                     
                                       
                                     
                                      
                                    
                                      
                                
















                                                              
                                           





                                           
                                      





                                               
                                          





                                                      
                                                 





                                                    
                                               





                                                   
                                              





                                                    
                                               

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