Skip to content

Commit 7b518da

Browse files
committed
reduce repetition of note creation code.
1 parent 895596d commit 7b518da

File tree

9 files changed

+66
-77
lines changed

9 files changed

+66
-77
lines changed

cmd/sncli/main.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -921,7 +921,7 @@ func startCLI(args []string) (msg string, useStdOut bool, err error) {
921921
Usage: "ignore warning",
922922
},
923923
cli.BoolFlag{
924-
Name: "settings",
924+
Name: "everything",
925925
Usage: "wipe settings also",
926926
},
927927
},
@@ -934,8 +934,7 @@ func startCLI(args []string) (msg string, useStdOut bool, err error) {
934934
useStdOut = opts.useStdOut
935935

936936
var session cache.Session
937-
var email string
938-
session, email, err = cache.GetSession(opts.useSession, opts.sessKey, opts.server, opts.debug)
937+
session, _, err = cache.GetSession(opts.useSession, opts.sessKey, opts.server, opts.debug)
939938
if err != nil {
940939
return err
941940
}
@@ -948,17 +947,18 @@ func startCLI(args []string) (msg string, useStdOut bool, err error) {
948947

949948
session.CacheDBPath = cacheDBPath
950949
wipeConfig := sncli.WipeConfig{
951-
Session: &session,
952-
Settings: c.Bool("settings"),
953-
Debug: opts.debug,
950+
Session: &session,
951+
UseStdOut: useStdOut,
952+
Everything: c.Bool("everything"),
953+
Debug: opts.debug,
954954
}
955955
var numWiped int
956956

957957
var proceed bool
958958
if c.Bool("yes") {
959959
proceed = true
960960
} else {
961-
fmt.Printf("wipe all items for account %s? ", email)
961+
fmt.Printf("wipe all items for account %s? ", session.Session.KeyParams.Identifier)
962962
var input string
963963
_, err = fmt.Scanln(&input)
964964
if err == nil && sncli.StringInSlice(input, []string{"y", "yes"}, false) {

cmd/sncli/main_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"github.com/stretchr/testify/assert"
5+
"github.com/stretchr/testify/require"
56
"strings"
67
"testing"
78
"time"
@@ -127,7 +128,7 @@ func TestDeleteNoteErrorMissingTitle(t *testing.T) {
127128
func TestTagNotesByTextWithNewTags(t *testing.T) {
128129
msg, _, err := startCLI([]string{"sncli", "--debug", "--no-stdout", "add", "note", "--title", "TestNoteOne", "--text", "test note one"})
129130
assert.Contains(t, msg, msgAddSuccess)
130-
assert.NoError(t, err, err)
131+
require.NoError(t, err)
131132

132133
msg, _, err = startCLI([]string{"sncli", "--debug", "--no-stdout", "add", "note", "--title", "TestNoteTwo", "--text", "test note two"})
133134
assert.NoError(t, err)
@@ -150,7 +151,7 @@ func TestTagNotesByTextWithNewTags(t *testing.T) {
150151
assert.NotEmpty(t, msg)
151152

152153
_, _, err = startCLI([]string{"sncli", "--debug", "--no-stdout", "delete", "tag", "--title", "testTagOne,testTagTwo"})
153-
assert.NoError(t, err, err)
154+
require.NoError(t, err)
154155
time.Sleep(1 * time.Second)
155156
}
156157

@@ -170,7 +171,7 @@ func TestAddOneNoteGetCount(t *testing.T) {
170171
assert.Equal(t, "1", msg)
171172

172173
_, _, err = startCLI([]string{"sncli", "--debug", "--no-stdout", "delete", "note", "--title", "testAddOneNoteGetCount Title"})
173-
assert.NoError(t, err, err)
174+
require.NoError(t, err)
174175
time.Sleep(1 * time.Second)
175176
}
176177

@@ -183,7 +184,7 @@ func TestAddOneTagGetCount(t *testing.T) {
183184
assert.Equal(t, "1", msg)
184185

185186
_, _, err = startCLI([]string{"sncli", "--debug", "--no-stdout", "delete", "tag", "--title", "testAddOneTagGetCount Title"})
186-
assert.NoError(t, err, err)
187+
require.NoError(t, err)
187188

188189
time.Sleep(1 * time.Second)
189190
}

export_test.go

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,7 @@ func TestEncryptDecryptWithNewItemsKey(t *testing.T) {
2121
require.NotEmpty(t, ik.CreatedAtTimestamp)
2222
require.Empty(t, ik.UpdatedAtTimestamp)
2323
require.Empty(t, ik.UpdatedAt)
24-
25-
n := gosn.NewNote()
26-
nc := gosn.NewNoteContent()
27-
nc.Title = "test title"
28-
nc.Text = "test content"
29-
n.Content = *nc
30-
24+
n, _ := gosn.NewNote("test title", "test content", nil)
3125
eis := gosn.Items{&n}
3226
encItems, err := eis.Encrypt(ik, testSession.MasterKey, testSession.Debug)
3327
require.NoError(t, err)
@@ -113,11 +107,8 @@ func TestJSONExportImport(t *testing.T) {
113107
allCacheItemsPreExport := len(existingItems)
114108
allItemsKeysPreExport := len(testSession.ItemsKeys)
115109

116-
note := gosn.NewNote()
117-
noteContent := gosn.NewNoteContent()
118-
note.Content = *noteContent
119-
note.Content.SetTitle("Example Title")
120-
note.Content.SetText("Some example text")
110+
note, _ := gosn.NewNote("Example Title", "Some example text", nil)
111+
121112
itemsToPut := gosn.Items{
122113
&note,
123114
}
@@ -218,12 +209,8 @@ func TestJSONExportWipeImportOneNote(t *testing.T) {
218209
var existingItems []cache.Item
219210
err = gio.DB.All(&existingItems)
220211
require.NoError(t, err)
212+
note, _ := gosn.NewNote("Example Title", "Some example text", nil)
221213

222-
note := gosn.NewNote()
223-
noteContent := gosn.NewNoteContent()
224-
note.Content = *noteContent
225-
note.Content.SetTitle("Example Title")
226-
note.Content.SetText("Some example text")
227214
itemsToPut := gosn.Items{
228215
&note,
229216
}
@@ -332,15 +319,7 @@ func TestConflictResolution(t *testing.T) {
332319
defer cleanUp(*testSession)
333320

334321
// create and put initial originalNote
335-
originalNote := gosn.NewNote()
336-
noteContent := gosn.NewNoteContent()
337-
originalNote.Content = *noteContent
338-
originalNoteTitle := "Example Title"
339-
originalNoteText := "Some example text"
340-
341-
originalNote.Content.SetTitle(originalNoteTitle)
342-
originalNote.Content.SetText(originalNoteText)
343-
322+
originalNote, _ := gosn.NewNote("Example Title", "Some example text", nil)
344323
itemsToPut := gosn.Items{
345324
&originalNote,
346325
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,4 @@ require (
5454
github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect
5555
)
5656

57-
//replace github.com/jonhadfield/gosn-v2 => ../gosn-v2
57+
replace github.com/jonhadfield/gosn-v2 => ../gosn-v2

main.go

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package sncli
22

33
import (
4+
"github.com/briandowns/spinner"
45
"github.com/jonhadfield/gosn-v2"
56
"github.com/jonhadfield/gosn-v2/cache"
7+
"os"
8+
"time"
69
)
710

811
const (
@@ -205,9 +208,10 @@ type DeleteNoteConfig struct {
205208
}
206209

207210
type WipeConfig struct {
208-
Session *cache.Session
209-
Debug bool
210-
Settings bool
211+
Session *cache.Session
212+
UseStdOut bool
213+
Debug bool
214+
Everything bool
211215
}
212216

213217
type StatsConfig struct {
@@ -258,5 +262,23 @@ var supportedContentTypes = []string{"Note", "Tag", "SN|Component"}
258262

259263
func (i *WipeConfig) Run() (int, error) {
260264
i.Session.RemoveDB()
261-
return gosn.DeleteContent(i.Session.Session)
265+
if !i.Session.Debug && i.UseStdOut {
266+
prefix := HiWhite("wiping ")
267+
268+
s := spinner.New(spinner.CharSets[14], 100*time.Millisecond, spinner.WithWriter(os.Stdout))
269+
if i.UseStdOut {
270+
s = spinner.New(spinner.CharSets[14], 100*time.Millisecond, spinner.WithWriter(os.Stderr))
271+
}
272+
273+
s.Prefix = prefix
274+
s.Start()
275+
276+
deleted, err := gosn.DeleteContent(i.Session.Session, i.Everything)
277+
278+
s.Stop()
279+
280+
return deleted, err
281+
}
282+
283+
return gosn.DeleteContent(i.Session.Session, i.Everything)
262284
}

note.go

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,7 @@ func addNote(i addNoteInput) (noteUUID string, err error) {
9696
return
9797
}
9898
} else {
99-
noteToAdd = gosn.NewNote()
100-
newNoteContent := gosn.NewNoteContent()
101-
newNoteContent.Title = i.noteTitle
102-
newNoteContent.Text = i.noteText
103-
noteToAdd.Content = *newNoteContent
104-
noteToAdd.UUID = gosn.GenUUID()
99+
noteToAdd, _ = gosn.NewNote(i.noteTitle, i.noteText, nil)
105100
noteUUID = noteToAdd.UUID
106101
}
107102

@@ -220,7 +215,6 @@ func deleteNotes(session *cache.Session, noteTitles []string, noteText string, n
220215
})
221216
}
222217
case noteText != "":
223-
224218
comparison := "=="
225219
if regex {
226220
comparison = "~"
@@ -233,7 +227,6 @@ func deleteNotes(session *cache.Session, noteTitles []string, noteText string, n
233227
Type: "Note",
234228
})
235229
case len(noteUUIDs) > 0:
236-
237230
for _, uuid := range noteUUIDs {
238231
getNotesFilters = append(getNotesFilters, gosn.Filter{
239232
Key: "UUID",
@@ -276,7 +269,6 @@ func deleteNotes(session *cache.Session, noteTitles []string, noteText string, n
276269
}
277270

278271
notes.Filter(itemFilter)
279-
280272
var notesToDelete gosn.Notes
281273

282274
for _, item := range notes {

note_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ func TestAddDeleteNoteByUUID(t *testing.T) {
253253
}
254254

255255
err := addNoteConfig.Run()
256-
assert.NoError(t, err, err)
256+
require.NoError(t, err)
257257

258258
// get new note
259259
filter := gosn.Filter{
@@ -275,7 +275,7 @@ func TestAddDeleteNoteByUUID(t *testing.T) {
275275

276276
preRes, err = gnc.Run()
277277

278-
assert.NoError(t, err, err)
278+
require.NoError(t, err)
279279

280280
newItemUUID := preRes[0].GetUUID()
281281
deleteNoteConfig := DeleteNoteConfig{
@@ -286,10 +286,10 @@ func TestAddDeleteNoteByUUID(t *testing.T) {
286286
var noDeleted int
287287
noDeleted, err = deleteNoteConfig.Run()
288288
assert.Equal(t, 1, noDeleted)
289-
assert.NoError(t, err, err)
289+
require.NoError(t, err)
290290

291291
postRes, err = gnc.Run()
292-
assert.NoError(t, err, err)
292+
require.NoError(t, err)
293293
assert.EqualValues(t, len(postRes), 0, "note was not deleted")
294294
}
295295

@@ -303,7 +303,7 @@ func TestAddDeleteNoteByTitle(t *testing.T) {
303303
Title: "TestNoteOne",
304304
}
305305
err := addNoteConfig.Run()
306-
assert.NoError(t, err, err)
306+
assert.NoError(t, err)
307307

308308
deleteNoteConfig := DeleteNoteConfig{
309309
Session: testSession,
@@ -312,8 +312,8 @@ func TestAddDeleteNoteByTitle(t *testing.T) {
312312

313313
var noDeleted int
314314
noDeleted, err = deleteNoteConfig.Run()
315-
assert.Equal(t, noDeleted, 1)
316-
assert.NoError(t, err, err)
315+
assert.Equal(t, 1, noDeleted)
316+
require.NoError(t, err)
317317

318318
filter := gosn.Filter{
319319
Type: "Note",
@@ -332,7 +332,7 @@ func TestAddDeleteNoteByTitle(t *testing.T) {
332332

333333
var postRes gosn.Items
334334
postRes, err = gnc.Run()
335-
assert.NoError(t, err, err)
335+
require.NoError(t, err)
336336
assert.EqualValues(t, len(postRes), 0, "note was not deleted")
337337
}
338338

@@ -346,7 +346,7 @@ func TestAddDeleteNoteByTitleRegex(t *testing.T) {
346346
Title: "TestNoteOne",
347347
}
348348
err := addNoteConfig.Run()
349-
assert.NoError(t, err, err)
349+
require.NoError(t, err)
350350

351351
// delete note
352352
deleteNoteConfig := DeleteNoteConfig{
@@ -358,7 +358,7 @@ func TestAddDeleteNoteByTitleRegex(t *testing.T) {
358358
var noDeleted int
359359
noDeleted, err = deleteNoteConfig.Run()
360360
assert.Equal(t, noDeleted, 1)
361-
assert.NoError(t, err, err)
361+
require.NoError(t, err)
362362

363363
// get same note again
364364
filter := gosn.Filter{
@@ -378,7 +378,7 @@ func TestAddDeleteNoteByTitleRegex(t *testing.T) {
378378
var postRes gosn.Items
379379
postRes, err = gnc.Run()
380380

381-
assert.NoError(t, err, err)
381+
require.NoError(t, err)
382382
assert.EqualValues(t, len(postRes), 0, "note was not deleted")
383383
}
384384

@@ -458,7 +458,7 @@ func TestCreateOneHundredNotes(t *testing.T) {
458458

459459
func cleanUp(session cache.Session) {
460460
session.RemoveDB()
461-
_, err := gosn.DeleteContent(session.Session)
461+
_, err := gosn.DeleteContent(session.Session, true)
462462

463463
if err != nil {
464464
panic(err)

0 commit comments

Comments
 (0)