Add command now stores the tickets
This commit is contained in:
parent
412d82269b
commit
44ab808223
3 changed files with 32 additions and 3 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1 +1,2 @@
|
|||
campaigner
|
||||
campaigner
|
||||
campaign.json
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
|
||||
"git.ctrlz.es/mgdelacroix/campaigner/model"
|
||||
)
|
||||
|
@ -19,3 +20,21 @@ func Save(campaign *model.Campaign) error {
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func Read() (*model.Campaign, error) {
|
||||
if _, err := os.Stat("."); err != nil {
|
||||
return nil, fmt.Errorf("cannot read campaign: %w", err)
|
||||
}
|
||||
|
||||
fileContents, err := ioutil.ReadFile("./campaign.json")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("there was a problem reading the campaign file: %w", err)
|
||||
}
|
||||
|
||||
var campaign model.Campaign
|
||||
if err := json.Unmarshal(fileContents, &campaign); err != nil {
|
||||
return nil, fmt.Errorf("there was a problem parsing the campaign file: %w", err)
|
||||
}
|
||||
|
||||
return &campaign, nil
|
||||
}
|
||||
|
|
13
cmd/add.go
13
cmd/add.go
|
@ -8,6 +8,7 @@ import (
|
|||
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"git.ctrlz.es/mgdelacroix/campaigner/campaign"
|
||||
"git.ctrlz.es/mgdelacroix/campaigner/model"
|
||||
)
|
||||
|
||||
|
@ -95,7 +96,15 @@ func addCmdF(cmd *cobra.Command, _ []string) {
|
|||
ErrorAndExit(cmd, err)
|
||||
}
|
||||
|
||||
for _, ticket := range tickets {
|
||||
fmt.Printf("%+v\n", ticket)
|
||||
cmp, err := campaign.Read()
|
||||
if err != nil {
|
||||
ErrorAndExit(cmd, err)
|
||||
}
|
||||
|
||||
// ToDo: make this skip duplicates
|
||||
cmp.Tickets = append(cmp.Tickets, tickets...)
|
||||
|
||||
if err := campaign.Save(cmp); err != nil {
|
||||
ErrorAndExit(cmd, err)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue