Working end to end with in-memory data store.

This commit is contained in:
Mariano Uvalle 2023-11-09 07:34:00 +00:00
parent 320dc46010
commit 426500df45
7 changed files with 313 additions and 27 deletions

40
cmd/cli/getClipboard.go Normal file
View file

@ -0,0 +1,40 @@
package main
import (
"errors"
"fmt"
"github.com/AYM1607/ccclip/internal/configfile"
"github.com/spf13/cobra"
)
func init() {
rootCmd.AddCommand(getClipboardCmd)
}
var getClipboardCmd = &cobra.Command{
Use: "get-clipboard",
Short: "get the currently stored clipboard",
RunE: func(cmd *cobra.Command, args []string) error {
cc, err := configfile.EnsureAndGet()
if err != nil {
return err
}
if cc.DeviceId == "" {
return errors.New("you must log in and register your device")
}
pvk, err := configfile.LoadPrivateKey()
if err != nil {
return fmt.Errorf("could not load this device's private key: %w", err)
}
plain, err := apiclient.GetClipboard(cc.DeviceId, pvk)
if err != nil {
return fmt.Errorf("could not set clipboard: %w", err)
}
fmt.Printf("Your current clipbard is %q\n", plain)
return nil
},
}

View file

@ -1,13 +1,7 @@
package main
import (
"encoding/json"
"errors"
"os"
"github.com/spf13/cobra"
"github.com/AYM1607/ccclip/internal/configfile"
)
func init() {
@ -18,22 +12,23 @@ var getDevicesCmd = &cobra.Command{
Use: "get-devices",
Short: "Register a user with a given email and password",
RunE: func(cmd *cobra.Command, args []string) error {
cc, err := configfile.EnsureAndGet()
if err != nil {
return err
}
if cc.DeviceId == "" {
return errors.New("your device is not registered")
}
pvk, err := configfile.LoadPrivateKey()
if err != nil {
return err
}
devices, err := apiclient.GetDevices(cc.DeviceId, pvk)
if err != nil {
return err
}
// cc, err := configfile.EnsureAndGet()
// if err != nil {
// return err
// }
// if cc.DeviceId == "" {
// return errors.New("your device is not registered")
// }
// pvk, err := configfile.LoadPrivateKey()
// if err != nil {
// return err
// }
// devices, err := apiclient.GetDevices(cc.DeviceId, pvk)
// if err != nil {
// return err
// }
return json.NewEncoder(os.Stdout).Encode(devices)
// return json.NewEncoder(os.Stdout).Encode(devices)
return nil
},
}

43
cmd/cli/setClipboard.go Normal file
View file

@ -0,0 +1,43 @@
package main
import (
"errors"
"fmt"
"github.com/AYM1607/ccclip/internal/configfile"
"github.com/spf13/cobra"
)
var clipboard string
func init() {
rootCmd.AddCommand(setClipboardCmd)
setClipboardCmd.Flags().StringVar(&clipboard, "clip", "", "the string to send")
setClipboardCmd.MarkFlagRequired("clip")
}
var setClipboardCmd = &cobra.Command{
Use: "set-clipboard",
Short: "set the given string as the cloud clipboard",
RunE: func(cmd *cobra.Command, args []string) error {
cc, err := configfile.EnsureAndGet()
if err != nil {
return err
}
if cc.DeviceId == "" {
return errors.New("you must log in and register your device")
}
pvk, err := configfile.LoadPrivateKey()
if err != nil {
return fmt.Errorf("could not load this device's private key: %w", err)
}
err = apiclient.SetClipboard(clipboard, cc.DeviceId, pvk)
if err != nil {
return fmt.Errorf("could not set clipboard: %w", err)
}
return nil
},
}