-
Notifications
You must be signed in to change notification settings - Fork 1
/
model.go
188 lines (132 loc) · 5.02 KB
/
model.go
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
package hugo
import (
"strings"
"time"
)
type HurriyetTime struct {
time.Time
}
func (self *HurriyetTime) UnmarshalJSON(b []byte) (err error) {
s := strings.Trim(string(b), `"`)
t, err := time.Parse("2006-01-02T15:04:05", s)
if err != nil {
t, err = time.Parse(time.RFC3339, s)
}
self.Time = t
return
}
// Query is a struct that contains query properties for endpoints.
type Query struct {
// Filter oData filtreleme yapısını kullanır. örnek: "Path eq '/teknoloji/'"
Filter string
// Select istenilen kolonları sonuç setine dahil eder. örnek: ["Id", "Description"]
Select []string
// Top sonuç setini limitlemek için kullanılır. örnek: 5 (sadece 5 adet sonuç döner)
Top int
// Skip sonuç setini limitlemek için kullanılır. örnek: 5 (5 adet sonucu es geçer)
Skip int
// S yeniden eskiye ya da eskiden yeniye sıralama için kullanılır. örnek: "-1" (yeniden eskiye)
S string
}
type Article struct {
// ID Haber id'sini temsil eder.
ID string `json:"Id"`
// ContentType Haber içerik tipini temsil eder. Olası değerler: Article, Column, NewsPhotoGallery, Page, Folder
ContentType string `json:"ContentType"`
//CreatedDate Haberin oluşturulma tarihini temsil eder.
CreatedDate HurriyetTime `json:"CreatedDate"`
//Description Haberin spot metnini temsil eder.
Description string `json:"Description"`
// Editor Haberin editörünü temsil eder.
Editor string `json:"Editor"`
// Files Haberin görsellerini temsil eder.
Files []File `json:"Files"`
// Path Haberin bağlı bulunduğu dizini temsil eder. /{dizin}/ şeklindeki ifade biçimi, ağaç yapı olarak devam etmektedir. Örneğin; /spor/futbol/
Path string `json:"Path"`
// RelatedNews Haberle ilişkilendirilmiş haberleri temsil eder.
RelatedNews []Article `json:"RelatedNews"`
StartDate HurriyetTime `json:"StartDate"`
// Tags Haberle ilişkilendirilmiş etiketleri temsil eder.
Tags []string `json:"Tags"`
// Text Haberin orijinal metnini temsil eder.
Text string `json:"Text"`
// Title Haberin başlığını temsil eder.
Title string `json:"Title"`
// URL Haberin gerçek adresini temsil eder.
URL string `json:"Url"`
// Haber eğer köşe yazısı tipinde ise köşe yazarının bilgisini temsil eder.
Writers []Writer `json:"Writers"`
}
type Metadata struct {
Title string `json:"Title"`
Description string `json:"Description"`
}
type File struct {
FileURL string `json:"FileUrl"`
Metadata Metadata `json:"Metadata"`
}
type Writer struct {
// ID Yazar id'sini temsil eder.
ID string `json:"Id"`
// Fullname Yazarın tam adını temsil eder.
Fullname string `json:"Fullname"`
// ContentType Yazar içerik tipini temsil eder. Sabit değer: PersonContainer
ContentType string `json:"ContentType"`
// CreatedDate Yazarın sistemde oluşturulma tarihini temsil eder.
CreatedDate HurriyetTime `json:"CreatedDate"`
// Files Yazarın görsellerini temsil eder.
Files []File `json:"Files"`
// Path Yazarın sistemde bağlı olduğu dizini temsil eder.
Path string `json:"Path"`
// URL Yazarın gerçek adresini temsil eder.
URL string `json:"Url"`
}
type Search struct {
// Count arama sonucunda bulunan eleman sayısı
Count int64 `json:"Count"`
Results []Article `json:"List"`
}
type Path struct {
// ID Dizin id'sini temsil eder.
ID string `json:"Id"`
// Path Dizini temsil eder.
Path string `json:"Path"`
// Title Dizin başlığını temsil eder.
Title string `json:"Title"`
}
type Page struct {
// ID Sayfa id'sini temsil eder.
ID string `json:"Id"`
// CreatedDate Sayfanın oluşturulma tarihini temsil eder.
CreatedDate HurriyetTime `json:"CreatedDate"`
RelatedNews []Article `json:"RelatedNews"`
// PageNews Sayfaya atanmış haberleri temsil eder.
PageNews []Article `json:"PageNews"`
// Title Sayfa başlığını temsil eder.
Title string `json:"Title"`
// URL Sayfanın gerçek adresini temsil eder.
URL string `json:"Url"`
}
type Column struct {
// ID Köşe yazısının id'sini temsil eder.
ID string `json:"Id"`
// Fullname Köşe yazarının tam adını temsil eder.
Fullname string `json:"Fullname"`
// ContentType Köşe yazısı içerik tipini temsil eder. Sabit değer: Column
ContentType string `json:"ContentType"`
// CreatedDate Köşe yazısının oluşturulma tarihini temsil eder.
CreatedDate HurriyetTime `json:"CreatedDate"`
// Description Köşe yazısının spot metnini temsil eder.
Description string `json:"Description"`
// Files Köşe yazısının görsellerini temsil eder.
Files []File `json:"Files"`
// Path Köşe yazısının bağlı bulunduğu dizini temsil eder. /{dizin}/ şeklindeki ifade biçimi, ağaç yapı olarak devam etmektedir. Örneğin; /spor/futbol/
Path string `json:"Path"`
StartDate HurriyetTime `json:"StartDate"`
// Title Köşe yazısının başlığını temsil eder.
Title string `json:"Title"`
// URL Köşe yazısının gerçek adresini temsil eder.
URL string `json:"Url"`
// WriterID Köşe yazarının id'sini temsil eder. Bu id üzerinden tekil sorgu alınabilir.
WriterID string `json:"WriterId"`
}