forked from jonaswouters/go-doccle
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrequestOptions.go
More file actions
48 lines (42 loc) · 979 Bytes
/
Copy pathrequestOptions.go
File metadata and controls
48 lines (42 loc) · 979 Bytes
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
42
43
44
45
46
47
48
package main
import (
"fmt"
"strings"
)
type RequestOptions struct {
Lang string
Order string
Page int
PageSize int
Sort string
}
func DefaultRequestOptions() RequestOptions {
options := RequestOptions{
Lang: "en",
Order: "DESC",
Page: 1,
PageSize: 50,
Sort: "Date",
}
return options
}
func (options RequestOptions) toQuery() string {
query := []string{}
if len(options.Lang) > 0 {
query = append(query, fmt.Sprintf("lang=%s", options.Lang))
}
if options.Order == "DESC" || options.Order == "ASC" {
query = append(query, fmt.Sprintf("order=%s", options.Order))
}
if options.Page > 0 {
query = append(query, fmt.Sprintf("page=%d", options.Page))
}
if options.PageSize > 0 {
query = append(query, fmt.Sprintf("pageSize=%d", options.PageSize))
}
// Haven't mapped the others atm
if options.Sort == "Date" {
query = append(query, fmt.Sprintf("sort=%s", options.Sort))
}
return strings.Join(query, "&")
}