| 82 | } |
| 83 | |
| 84 | func parseSorting(q *Query, value string) error { |
| 85 | switch value { |
| 86 | // default ASC |
| 87 | case "id-desc": |
| 88 | q.OrderBy = OrderById |
| 89 | q.OrderDirection = OrderDescending |
| 90 | case "id", "id-asc": |
| 91 | q.OrderBy = OrderById |
| 92 | q.OrderDirection = OrderAscending |
| 93 | |
| 94 | // default DESC |
| 95 | case "creation", "creation-desc": |
| 96 | q.OrderBy = OrderByCreation |
| 97 | q.OrderDirection = OrderDescending |
| 98 | case "creation-asc": |
| 99 | q.OrderBy = OrderByCreation |
| 100 | q.OrderDirection = OrderAscending |
| 101 | |
| 102 | // default DESC |
| 103 | case "edit", "edit-desc": |
| 104 | q.OrderBy = OrderByEdit |
| 105 | q.OrderDirection = OrderDescending |
| 106 | case "edit-asc": |
| 107 | q.OrderBy = OrderByEdit |
| 108 | q.OrderDirection = OrderAscending |
| 109 | |
| 110 | default: |
| 111 | return fmt.Errorf("unknown sorting %s", value) |
| 112 | } |
| 113 | |
| 114 | return nil |
| 115 | } |