seemingly good
This commit is contained in:
@@ -52,7 +52,7 @@ func (c *Client) ParseArgs() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Client) Lists() ([]List, error) {
|
||||
func (c *Client) Lists() (Lists, error) {
|
||||
client, err := NewHTTP(c.config.remote, c.config.password)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -63,10 +63,10 @@ func (c *Client) Lists() ([]List, error) {
|
||||
} else if err := json.NewDecoder(resp.Body).Decode(&lists); err != nil {
|
||||
return nil, fmt.Errorf("cannot read lists: %v", err)
|
||||
}
|
||||
return lists.Lists, nil
|
||||
return Lists(lists.Lists), nil
|
||||
}
|
||||
|
||||
func (c *Client) Tasks(list List) ([]Task, error) {
|
||||
func (c *Client) Tasks(list List) (Tasks, error) {
|
||||
client, err := NewHTTP(c.config.remote, c.config.password)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -77,7 +77,7 @@ func (c *Client) Tasks(list List) ([]Task, error) {
|
||||
} else if err := json.NewDecoder(resp.Body).Decode(&tasks); err != nil {
|
||||
return nil, fmt.Errorf("cannot read tasks: %v", err)
|
||||
}
|
||||
return tasks.Tasks, nil
|
||||
return Tasks(tasks.Tasks), nil
|
||||
}
|
||||
|
||||
func (c *Client) NewTask(list List, task Task, tags string) error {
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
package remote
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/gob"
|
||||
)
|
||||
|
||||
type loadListsResponse struct {
|
||||
Lists []List `json:"list"`
|
||||
}
|
||||
@@ -8,3 +13,41 @@ type List struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
type Lists []List
|
||||
|
||||
func (l *List) Encode() ([]byte, error) {
|
||||
buf := bytes.NewBuffer(nil)
|
||||
enc := gob.NewEncoder(buf)
|
||||
err := enc.Encode(*l)
|
||||
return buf.Bytes(), err
|
||||
}
|
||||
|
||||
func (l *List) Decode(b []byte) error {
|
||||
buf := bytes.NewBuffer(b)
|
||||
enc := gob.NewDecoder(buf)
|
||||
err := enc.Decode(l)
|
||||
return err
|
||||
}
|
||||
|
||||
func (ls *Lists) Encode() ([]byte, error) {
|
||||
buf := bytes.NewBuffer(nil)
|
||||
enc := gob.NewEncoder(buf)
|
||||
err := enc.Encode(*ls)
|
||||
return buf.Bytes(), err
|
||||
}
|
||||
|
||||
func (ls *Lists) Decode(b []byte) error {
|
||||
buf := bytes.NewBuffer(b)
|
||||
enc := gob.NewDecoder(buf)
|
||||
err := enc.Decode(ls)
|
||||
return err
|
||||
}
|
||||
|
||||
func (ls Lists) Length() int {
|
||||
return len(ls.ListArray())
|
||||
}
|
||||
|
||||
func (ls Lists) ListArray() []List {
|
||||
return []List(ls)
|
||||
}
|
||||
|
||||
46
mytinytodo/remote/list_test.go
Normal file
46
mytinytodo/remote/list_test.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package remote
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestListEncodeDecode(t *testing.T) {
|
||||
L := &List{
|
||||
ID: "id",
|
||||
Name: "name",
|
||||
}
|
||||
|
||||
b, err := L.Encode()
|
||||
if err != nil {
|
||||
t.Fatalf("cannot encode list: %v", err)
|
||||
}
|
||||
|
||||
M := &List{}
|
||||
if err := M.Decode(b); err != nil {
|
||||
t.Fatalf("cannot decode list: %v", err)
|
||||
} else if *L != *M {
|
||||
t.Fatalf("wrong decode list: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestListsEncodeDecode(t *testing.T) {
|
||||
L := Lists([]List{List{
|
||||
ID: "id",
|
||||
Name: "name",
|
||||
}})
|
||||
LS := &L
|
||||
|
||||
b, err := LS.Encode()
|
||||
if err != nil {
|
||||
t.Fatalf("cannot encode list: %v", err)
|
||||
}
|
||||
|
||||
M := Lists([]List{})
|
||||
MS := &M
|
||||
if err := MS.Decode(b); err != nil {
|
||||
t.Fatalf("cannot decode list: %v", err)
|
||||
} else if fmt.Sprintf("%v", *LS) != fmt.Sprintf("%v", *MS) {
|
||||
t.Fatalf("wrong decode list: %v", err)
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,10 @@
|
||||
package remote
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/gob"
|
||||
)
|
||||
|
||||
type loadTasksResponse struct {
|
||||
Tasks []Task `json:"list"`
|
||||
}
|
||||
@@ -9,3 +14,41 @@ type Task struct {
|
||||
Title string `json:"title"`
|
||||
Complete int `json:"compl"`
|
||||
}
|
||||
|
||||
type Tasks []Task
|
||||
|
||||
func (t *Task) Encode() ([]byte, error) {
|
||||
buf := bytes.NewBuffer(nil)
|
||||
enc := gob.NewEncoder(buf)
|
||||
err := enc.Encode(*t)
|
||||
return buf.Bytes(), err
|
||||
}
|
||||
|
||||
func (t *Task) Decode(b []byte) error {
|
||||
buf := bytes.NewBuffer(b)
|
||||
enc := gob.NewDecoder(buf)
|
||||
err := enc.Decode(t)
|
||||
return err
|
||||
}
|
||||
|
||||
func (ts *Tasks) Encode() ([]byte, error) {
|
||||
buf := bytes.NewBuffer(nil)
|
||||
enc := gob.NewEncoder(buf)
|
||||
err := enc.Encode(*ts)
|
||||
return buf.Bytes(), err
|
||||
}
|
||||
|
||||
func (ts *Tasks) Decode(b []byte) error {
|
||||
buf := bytes.NewBuffer(b)
|
||||
enc := gob.NewDecoder(buf)
|
||||
err := enc.Decode(ts)
|
||||
return err
|
||||
}
|
||||
|
||||
func (ts Tasks) Length() int {
|
||||
return len(ts.TaskArray())
|
||||
}
|
||||
|
||||
func (ts Tasks) TaskArray() []Task {
|
||||
return []Task(ts)
|
||||
}
|
||||
|
||||
48
mytinytodo/remote/task_test.go
Normal file
48
mytinytodo/remote/task_test.go
Normal file
@@ -0,0 +1,48 @@
|
||||
package remote
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestTaskEncodeDecode(t *testing.T) {
|
||||
L := &Task{
|
||||
ID: "id",
|
||||
Title: "title",
|
||||
Complete: 0,
|
||||
}
|
||||
|
||||
b, err := L.Encode()
|
||||
if err != nil {
|
||||
t.Fatalf("cannot encode task: %v", err)
|
||||
}
|
||||
|
||||
M := &Task{}
|
||||
if err := M.Decode(b); err != nil {
|
||||
t.Fatalf("cannot decode task: %v", err)
|
||||
} else if *L != *M {
|
||||
t.Fatalf("wrong decode task: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTasksEncodeDecode(t *testing.T) {
|
||||
L := Tasks([]Task{Task{
|
||||
ID: "id",
|
||||
Title: "title",
|
||||
Complete: 0,
|
||||
}})
|
||||
LS := &L
|
||||
|
||||
b, err := LS.Encode()
|
||||
if err != nil {
|
||||
t.Fatalf("cannot encode task: %v", err)
|
||||
}
|
||||
|
||||
M := Tasks([]Task{})
|
||||
MS := &M
|
||||
if err := MS.Decode(b); err != nil {
|
||||
t.Fatalf("cannot decode task: %v", err)
|
||||
} else if fmt.Sprintf("%v", *LS) != fmt.Sprintf("%v", *MS) {
|
||||
t.Fatalf("wrong decode task: %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user