aboutsummaryrefslogtreecommitdiff
path: root/internal/imap/folder.go
blob: 6353bb380c23b65c97e4a8fecad44e41263aae65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package imap

import "strings"

type Folder struct {
	str       string
	delimiter string
}

func (f Folder) String() string {
	return f.str
}

func (f Folder) Append(other Folder) Folder {
	if f.delimiter != other.delimiter {
		panic("Delimiters do not match")
	}
	return Folder{
		str:       f.str + f.delimiter + other.str,
		delimiter: f.delimiter,
	}
}

func buildFolderName(path []string, delimiter string) (name string) {
	name = strings.Join(path, delimiter)
	if delimiter != "" {
		name = strings.Trim(name, delimiter[0:1])
	}
	return
}

func (cl *Client) folderName(path []string) Folder {
	return Folder{
		buildFolderName(path, cl.delimiter),
		cl.delimiter,
	}
}

func (cl *Client) NewFolder(path []string) Folder {
	return cl.toplevel.Append(cl.folderName(path))
}
5Flash on error in all formsRené 'Necoro' Neumann2-5/+21 2013-10-15Streamline CSSRené 'Necoro' Neumann2-77/+24 2013-10-15Margin for buttons in formsRené 'Necoro' Neumann1-0/+3 2013-10-15Support flashingRené 'Necoro' Neumann5-2/+34 2013-10-15Moved user implementation from model to loginRené 'Necoro' Neumann3-28/+13 2013-10-15Nicer organised importsRené 'Necoro' Neumann6-24/+40 2013-10-14Finish login stuffRené 'Necoro' Neumann11-29/+143 2013-10-14More model tuningRené 'Necoro' Neumann1-3/+3 2013-10-14Add User to modelRené 'Necoro' Neumann1-8/+25 2013-09-30Add first API stuff -- SingleExpense and CategoryRené 'Necoro' Neumann2-1/+13 2013-09-30Force python2René 'Necoro' Neumann1-1/+1 2013-09-24More margin at the bottom for expense listingRené 'Necoro' Neumann1-1/+1 2013-09-24Better pie formattingRené 'Necoro' Neumann3-6/+8 2013-09-24Increase width of page to 760pxRené 'Necoro' Neumann3-8/+9 2013-09-16typoRené 'Necoro' Neumann1-1/+1 2013-09-15Fix display of one monthRené 'Necoro' Neumann1-2/+2 2013-09-14Draw pies using highcharts JS-libRené 'Necoro' Neumann5-20/+99