From e7e905172fd983b74bef1f881710b8309f65f949 Mon Sep 17 00:00:00 2001 From: Javier Guajardo Date: Sat, 5 Nov 2022 09:29:27 +0200 Subject: [PATCH] Add functions to delete keys and lists --- keys.go | 9 +++++++++ lists.go | 10 ++++++++++ tests/keys_test.go | 7 +++++++ tests/lists_test.go | 8 ++++++++ 4 files changed, 34 insertions(+) diff --git a/keys.go b/keys.go index 843d0ec..a115c14 100644 --- a/keys.go +++ b/keys.go @@ -25,3 +25,12 @@ func Get(key string) (string, error) { } return "", fmt.Errorf("key '%s' not found", key) } + +func DeleteKey(key string) error { + value, _ := Get(key) + if len(value) > 0 { + delete(keys, key) + return nil + } + return fmt.Errorf("key '%s' doesn't exist", key) +} \ No newline at end of file diff --git a/lists.go b/lists.go index 682a5fd..0ee040f 100644 --- a/lists.go +++ b/lists.go @@ -144,4 +144,14 @@ func ReplaceList(listName string, index int, newElement string) (bool, error) { func CountList(listName string) (int, error) { list, err := GetList(listName) return len(list), err +} + +func DeleteList(listName string) error { + for key, _ := range lists { + if key == listName { + delete(lists, listName) + return nil + } + } + return fmt.Errorf("list '%s' doesn't exist", listName) } \ No newline at end of file diff --git a/tests/keys_test.go b/tests/keys_test.go index e141306..55f82dd 100644 --- a/tests/keys_test.go +++ b/tests/keys_test.go @@ -23,4 +23,11 @@ func TestKeys(t *testing.T) { } }) + t.Run("Delete Key", func(t *testing.T) { + var newKey string = "delete-key" + sider.Set(newKey, "value") + if err := sider.DeleteKey(newKey); err != nil { + t.Errorf("Error deleting key '%s'", newKey) + } + }) } diff --git a/tests/lists_test.go b/tests/lists_test.go index 383d551..6306a9c 100644 --- a/tests/lists_test.go +++ b/tests/lists_test.go @@ -168,4 +168,12 @@ func TestLists(t *testing.T) { } } }) + + t.Run("Delete List", func(t *testing.T) { + var newList string = "my-list-to-delete" + sider.LPush(newList, "element") + if err := sider.DeleteList(newList); err != nil { + t.Errorf("error: %v", err) + } + }) }