aboutsummaryrefslogtreecommitdiffstats
path: root/bug/snapshot.go
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2022-08-18 23:34:05 +0200
committerMichael Muré <batolettre@gmail.com>2022-08-18 23:44:06 +0200
commit5511c230b678a181cc596238bf6669428d1b1902 (patch)
tree8701efc87732439f993eb4f1d00585fc419b87ab /bug/snapshot.go
parent5ca686b59751e3c87740b84108c54fc675a074cf (diff)
downloadgit-bug-5511c230b678a181cc596238bf6669428d1b1902.tar.gz
move {bug,identity} to /entities, move input to /commands
Diffstat (limited to 'bug/snapshot.go')
-rw-r--r--bug/snapshot.go144
1 files changed, 0 insertions, 144 deletions
diff --git a/bug/snapshot.go b/bug/snapshot.go
deleted file mode 100644
index 2efc067e..00000000
--- a/bug/snapshot.go
+++ /dev/null
@@ -1,144 +0,0 @@
-package bug
-
-import (
- "fmt"
- "time"
-
- "github.com/MichaelMure/git-bug/entity"
- "github.com/MichaelMure/git-bug/entity/dag"
- "github.com/MichaelMure/git-bug/identity"
-)
-
-var _ dag.Snapshot = &Snapshot{}
-
-// Snapshot is a compiled form of the Bug data structure used for storage and merge
-type Snapshot struct {
- id entity.Id
-
- Status Status
- Title string
- Comments []Comment
- Labels []Label
- Author identity.Interface
- Actors []identity.Interface
- Participants []identity.Interface
- CreateTime time.Time
-
- Timeline []TimelineItem
-
- Operations []dag.Operation
-}
-
-// Id returns the Bug identifier
-func (snap *Snapshot) Id() entity.Id {
- if snap.id == "" {
- // simply panic as it would be a coding error (no id provided at construction)
- panic("no id")
- }
- return snap.id
-}
-
-func (snap *Snapshot) AllOperations() []dag.Operation {
- return snap.Operations
-}
-
-// EditTime returns the last time a bug was modified
-func (snap *Snapshot) EditTime() time.Time {
- if len(snap.Operations) == 0 {
- return time.Unix(0, 0)
- }
-
- return snap.Operations[len(snap.Operations)-1].Time()
-}
-
-// GetCreateMetadata return the creation metadata
-func (snap *Snapshot) GetCreateMetadata(key string) (string, bool) {
- return snap.Operations[0].GetMetadata(key)
-}
-
-// SearchTimelineItem will search in the timeline for an item matching the given hash
-func (snap *Snapshot) SearchTimelineItem(id entity.Id) (TimelineItem, error) {
- for i := range snap.Timeline {
- if snap.Timeline[i].Id() == id {
- return snap.Timeline[i], nil
- }
- }
-
- return nil, fmt.Errorf("timeline item not found")
-}
-
-// SearchComment will search for a comment matching the given hash
-func (snap *Snapshot) SearchComment(id entity.Id) (*Comment, error) {
- for _, c := range snap.Comments {
- if c.id == id {
- return &c, nil
- }
- }
-
- return nil, fmt.Errorf("comment item not found")
-}
-
-// append the operation author to the actors list
-func (snap *Snapshot) addActor(actor identity.Interface) {
- for _, a := range snap.Actors {
- if actor.Id() == a.Id() {
- return
- }
- }
-
- snap.Actors = append(snap.Actors, actor)
-}
-
-// append the operation author to the participants list
-func (snap *Snapshot) addParticipant(participant identity.Interface) {
- for _, p := range snap.Participants {
- if participant.Id() == p.Id() {
- return
- }
- }
-
- snap.Participants = append(snap.Participants, participant)
-}
-
-// HasParticipant return true if the id is a participant
-func (snap *Snapshot) HasParticipant(id entity.Id) bool {
- for _, p := range snap.Participants {
- if p.Id() == id {
- return true
- }
- }
- return false
-}
-
-// HasAnyParticipant return true if one of the ids is a participant
-func (snap *Snapshot) HasAnyParticipant(ids ...entity.Id) bool {
- for _, id := range ids {
- if snap.HasParticipant(id) {
- return true
- }
- }
- return false
-}
-
-// HasActor return true if the id is a actor
-func (snap *Snapshot) HasActor(id entity.Id) bool {
- for _, p := range snap.Actors {
- if p.Id() == id {
- return true
- }
- }
- return false
-}
-
-// HasAnyActor return true if one of the ids is a actor
-func (snap *Snapshot) HasAnyActor(ids ...entity.Id) bool {
- for _, id := range ids {
- if snap.HasActor(id) {
- return true
- }
- }
- return false
-}
-
-// IsAuthored is a sign post method for gqlgen
-func (snap *Snapshot) IsAuthored() {}