/
taskstate.go
60 lines (55 loc) · 1.49 KB
/
taskstate.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package main
import (
"fmt"
"html/template"
)
type TaskState string
const (
Failed TaskState = "failed"
Fetched TaskState = "fetched"
NotOrderedYet TaskState = "not-ordered-yet" // initial state
Ordered TaskState = "ordered"
Ready TaskState = "ready"
Reshipped TaskState = "reshipped"
Unfetched TaskState = "unfetched"
)
func (s TaskState) Name() string {
switch s {
case Failed:
return "Gescheitert"
case Fetched:
return "Abgeholt"
case NotOrderedYet:
return "Noch nicht bestellt"
case Ordered:
return "Bestellt"
case Ready:
return "Eingetroffen"
case Reshipped:
return "Weiterverschickt"
case Unfetched:
return "Nicht abgeholt"
default:
return string(s)
}
}
func (s TaskState) Description() template.HTML {
var desc string
switch s {
case Failed:
desc = "(Die Ausführung dieser Bestellung ist gescheitert.)"
case Fetched:
desc = "(Die Ware wurde abgeholt.)"
case NotOrderedYet:
desc = "(Wir haben die Bestellung noch nicht ausgeführt.)"
case Ordered:
desc = "(Wir haben deinen Bestellauftrag ausgeführt. Du wirst benachrichtigt, wenn die Ware eintrifft.)"
case Ready:
desc = "(Die Ware ist bei uns eingetroffen. Du kannst sie abholen bzw. wir versenden sie bald an dich weiter.)"
case Reshipped:
desc = "(Wir haben deine Ware an dich weiterverschickt.)"
case Unfetched:
desc = "(Deine Ware wurde nicht abgeholt. Bitte melde dich bei uns.)"
}
return template.HTML(fmt.Sprintf("<strong>%s</strong> %s", s.Name(), desc))
}