wip
This commit is contained in:
parent
0f903a5645
commit
4c69f00abd
|
@ -3,6 +3,7 @@ package command
|
||||||
import (
|
import (
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
"go-mod.ewintr.nl/planner/plan/storage"
|
"go-mod.ewintr.nl/planner/plan/storage"
|
||||||
|
"go-mod.ewintr.nl/planner/sync/client"
|
||||||
)
|
)
|
||||||
|
|
||||||
var SyncCmd = &cli.Command{
|
var SyncCmd = &cli.Command{
|
||||||
|
@ -17,14 +18,25 @@ var SyncCmd = &cli.Command{
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewSyncCmd(localRepo storage.LocalID, eventRepo storage.Event) *cli.Command {
|
func NewSyncCmd(client *client.Client, localRepo storage.LocalID, eventRepo storage.Event) *cli.Command {
|
||||||
SyncCmd.Action = func(cCtx *cli.Context) error {
|
SyncCmd.Action = func(cCtx *cli.Context) error {
|
||||||
return Sync(localRepo, eventRepo, cCtx.Bool("full"))
|
return Sync(client, localRepo, eventRepo, cCtx.Bool("full"))
|
||||||
}
|
}
|
||||||
return SyncCmd
|
return SyncCmd
|
||||||
}
|
}
|
||||||
|
|
||||||
func Sync(localRepo storage.LocalID, eventRepo storage.Event, full bool) error {
|
func Sync(client *client.Client, localRepo storage.LocalID, eventRepo storage.Event, full bool) error {
|
||||||
|
// get new/updated items
|
||||||
|
|
||||||
|
// delete deleted
|
||||||
|
|
||||||
|
// update existing
|
||||||
|
|
||||||
|
// localid and add new
|
||||||
|
|
||||||
|
// find local new and updated
|
||||||
|
|
||||||
|
// send new and updated
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
"go-mod.ewintr.nl/planner/plan/command"
|
"go-mod.ewintr.nl/planner/plan/command"
|
||||||
"go-mod.ewintr.nl/planner/plan/storage/sqlite"
|
"go-mod.ewintr.nl/planner/plan/storage/sqlite"
|
||||||
|
"go-mod.ewintr.nl/planner/sync/client"
|
||||||
"gopkg.in/yaml.v3"
|
"gopkg.in/yaml.v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -29,6 +30,8 @@ func main() {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
syncClient := client.New(conf.SyncURL, conf.ApiKey)
|
||||||
|
|
||||||
app := &cli.App{
|
app := &cli.App{
|
||||||
Name: "plan",
|
Name: "plan",
|
||||||
Usage: "Plan your day with events",
|
Usage: "Plan your day with events",
|
||||||
|
@ -37,6 +40,7 @@ func main() {
|
||||||
command.NewListCmd(localIDRepo, eventRepo),
|
command.NewListCmd(localIDRepo, eventRepo),
|
||||||
command.NewUpdateCmd(localIDRepo, eventRepo),
|
command.NewUpdateCmd(localIDRepo, eventRepo),
|
||||||
command.NewDeleteCmd(localIDRepo, eventRepo),
|
command.NewDeleteCmd(localIDRepo, eventRepo),
|
||||||
|
command.NewSyncCmd(syncClient, localIDRepo, eventRepo),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +51,9 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Configuration struct {
|
type Configuration struct {
|
||||||
DBPath string `yaml:"dbpath"`
|
DBPath string `yaml:"dbpath"`
|
||||||
|
SyncURL string `yaml:"sync_url"`
|
||||||
|
ApiKey string `yaml:"api_key"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func LoadConfig(path string) (Configuration, error) {
|
func LoadConfig(path string) (Configuration, error) {
|
||||||
|
|
|
@ -19,7 +19,7 @@ type Client struct {
|
||||||
c *http.Client
|
c *http.Client
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewClient(url, apiKey string) *Client {
|
func New(url, apiKey string) *Client {
|
||||||
return &Client{
|
return &Client{
|
||||||
baseURL: url,
|
baseURL: url,
|
||||||
apiKey: apiKey,
|
apiKey: apiKey,
|
||||||
|
|
Loading…
Reference in New Issue