File tree Expand file tree Collapse file tree 2 files changed +45
-15
lines changed
Expand file tree Collapse file tree 2 files changed +45
-15
lines changed Original file line number Diff line number Diff line change 11package sortx
22
3- import "strings"
3+ import (
4+ "strings"
5+ )
46
57type (
68 Key string
7- Order int64
9+ Order string
810)
911
1012const (
11- OrderAscending Order = iota + 1
12- OrderDescending
13+ OrderAscending Order = "ASC"
14+ OrderDescending Order = "DESC"
1315)
1416
1517type Sort struct {
16- Key Key
17- Order Order
18+ Key Key
19+ Order Order
20+ Original string
1821}
1922
2023// NewSorts create sorting based on
@@ -28,11 +31,12 @@ func NewSorts(qs string) []Sort {
2831 kv := strings .Split (v , ":" )
2932
3033 s := Sort {
31- Key : Key (kv [0 ]),
32- Order : OrderAscending ,
34+ Key : Key (strings .ToLower (kv [0 ])),
35+ Order : OrderAscending ,
36+ Original : strings .ToLower (v ),
3337 }
3438 if len (kv ) == 2 {
35- switch kv [1 ] {
39+ switch strings . ToLower ( kv [1 ]) {
3640 case "asc" :
3741 s .Order = OrderAscending
3842 case "desc" :
Original file line number Diff line number Diff line change @@ -21,16 +21,42 @@ func TestNewSorts(t *testing.T) {
2121 },
2222 want : []Sort {
2323 {
24- Key : "id" ,
25- Order : OrderDescending ,
24+ Key : "id" ,
25+ Order : OrderDescending ,
26+ Original : "id:desc" ,
2627 },
2728 {
28- Key : "status" ,
29- Order : OrderAscending ,
29+ Key : "status" ,
30+ Order : OrderAscending ,
31+ Original : "status:asc" ,
3032 },
3133 {
32- Key : "created_at" ,
33- Order : OrderAscending ,
34+ Key : "created_at" ,
35+ Order : OrderAscending ,
36+ Original : "created_at" ,
37+ },
38+ },
39+ },
40+ {
41+ name : "Success with different case" ,
42+ args : args {
43+ qs : "ID:DESC,Status:Asc,created_at" ,
44+ },
45+ want : []Sort {
46+ {
47+ Key : "id" ,
48+ Order : OrderDescending ,
49+ Original : "id:desc" ,
50+ },
51+ {
52+ Key : "status" ,
53+ Order : OrderAscending ,
54+ Original : "status:asc" ,
55+ },
56+ {
57+ Key : "created_at" ,
58+ Order : OrderAscending ,
59+ Original : "created_at" ,
3460 },
3561 },
3662 },
You can’t perform that action at this time.
0 commit comments