Skip to content

Commit aac174b

Browse files
committed
Simplify RestContent Object Visitor
1 parent c63c27c commit aac174b

File tree

1 file changed

+20
-40
lines changed

1 file changed

+20
-40
lines changed

src/lib/Server/Output/ValueObjectVisitor/RestContent.php

Lines changed: 20 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -50,53 +50,45 @@ public function visit(Visitor $visitor, Generator $generator, $data)
5050
$visitor->setHeader('Content-Type', $generator->getMediaType($mediaType));
5151
$visitor->setHeader('Accept-Patch', $generator->getMediaType('ContentUpdate'));
5252

53-
$generator->startAttribute(
53+
$generator->attribute(
5454
'href',
5555
$data->path === null ?
5656
$this->router->generate('ibexa.rest.load_content', ['contentId' => $contentInfo->id]) :
5757
$data->path
5858
);
59-
$generator->endAttribute('href');
6059

61-
$generator->startAttribute('remoteId', $contentInfo->remoteId);
62-
$generator->endAttribute('remoteId');
63-
$generator->startAttribute('id', $contentInfo->id);
64-
$generator->endAttribute('id');
60+
$generator->attribute('remoteId', $contentInfo->remoteId);
61+
$generator->attribute('id', $contentInfo->id);
6562

6663
$generator->startObjectElement('ContentType');
67-
$generator->startAttribute(
64+
$generator->attribute(
6865
'href',
6966
$this->router->generate(
7067
'ibexa.rest.load_content_type',
7168
['contentTypeId' => $contentInfo->contentTypeId]
7269
)
7370
);
74-
$generator->endAttribute('href');
7571
$generator->endObjectElement('ContentType');
7672

77-
$generator->startValueElement('Name', $contentInfo->name);
78-
$generator->endValueElement('Name');
73+
$generator->valueElement('Name', $contentInfo->name);
7974

80-
$generator->startValueElement('TranslatedName', $translatedContentName);
81-
$generator->endValueElement('TranslatedName');
75+
$generator->valueElement('TranslatedName', $translatedContentName);
8276

8377
$generator->startObjectElement('Versions', 'VersionList');
84-
$generator->startAttribute(
78+
$generator->attribute(
8579
'href',
8680
$this->router->generate('ibexa.rest.load_content_versions', ['contentId' => $contentInfo->id])
8781
);
88-
$generator->endAttribute('href');
8982
$generator->endObjectElement('Versions');
9083

9184
$generator->startObjectElement('CurrentVersion', 'Version');
92-
$generator->startAttribute(
85+
$generator->attribute(
9386
'href',
9487
$this->router->generate(
9588
'ibexa.rest.redirect_current_version',
9689
['contentId' => $contentInfo->id]
9790
)
9891
);
99-
$generator->endAttribute('href');
10092

10193
// Embed current version, if available
10294
if ($currentVersion !== null) {
@@ -112,105 +104,93 @@ public function visit(Visitor $visitor, Generator $generator, $data)
112104
$generator->endObjectElement('CurrentVersion');
113105

114106
$generator->startObjectElement('Section');
115-
$generator->startAttribute(
107+
$generator->attribute(
116108
'href',
117109
$this->router->generate('ibexa.rest.load_section', ['sectionId' => $contentInfo->sectionId])
118110
);
119-
$generator->endAttribute('href');
120111
$generator->endObjectElement('Section');
121112

122113
// Main location will not exist if we're visiting the content draft
123114
if ($data->mainLocation !== null) {
124115
$generator->startObjectElement('MainLocation', 'Location');
125-
$generator->startAttribute(
116+
$generator->attribute(
126117
'href',
127118
$this->router->generate(
128119
'ibexa.rest.load_location',
129120
['locationPath' => trim($mainLocation->pathString, '/')]
130121
)
131122
);
132-
$generator->endAttribute('href');
133123
$generator->endObjectElement('MainLocation');
134124
}
135125

136126
$generator->startObjectElement('Locations', 'LocationList');
137-
$generator->startAttribute(
127+
$generator->attribute(
138128
'href',
139129
$this->router->generate(
140130
'ibexa.rest.load_locations_for_content',
141131
['contentId' => $contentInfo->id]
142132
)
143133
);
144-
$generator->endAttribute('href');
145134
$generator->endObjectElement('Locations');
146135

147136
$generator->startObjectElement('Owner', 'User');
148-
$generator->startAttribute(
137+
$generator->attribute(
149138
'href',
150139
$this->router->generate('ibexa.rest.load_user', ['userId' => $contentInfo->ownerId])
151140
);
152-
$generator->endAttribute('href');
153141
$generator->endObjectElement('Owner');
154142

155143
// Modification date will not exist if we're visiting the content draft
156144
if ($contentInfo->modificationDate !== null) {
157-
$generator->startValueElement(
145+
$generator->valueElement(
158146
'lastModificationDate',
159147
$contentInfo->modificationDate->format('c')
160148
);
161-
$generator->endValueElement('lastModificationDate');
162149
}
163150

164151
// Published date will not exist if we're visiting the content draft
165152
if ($contentInfo->publishedDate !== null) {
166-
$generator->startValueElement(
153+
$generator->valueElement(
167154
'publishedDate',
168155
($contentInfo->publishedDate !== null
169156
? $contentInfo->publishedDate->format('c')
170157
: null)
171158
);
172-
$generator->endValueElement('publishedDate');
173159
}
174160

175-
$generator->startValueElement(
161+
$generator->valueElement(
176162
'mainLanguageCode',
177163
$contentInfo->mainLanguageCode
178164
);
179-
$generator->endValueElement('mainLanguageCode');
180165

181-
$generator->startValueElement(
166+
$generator->valueElement(
182167
'currentVersionNo',
183168
$contentInfo->currentVersionNo
184169
);
185-
$generator->endValueElement('currentVersionNo');
186170

187-
$generator->startValueElement(
171+
$generator->valueElement(
188172
'alwaysAvailable',
189173
$this->serializeBool($generator, $contentInfo->alwaysAvailable)
190174
);
191-
$generator->endValueElement('alwaysAvailable');
192175

193-
$generator->startValueElement(
176+
$generator->valueElement(
194177
'isHidden',
195178
$this->serializeBool($generator, $contentInfo->isHidden)
196179
);
197-
$generator->endValueElement('isHidden');
198180

199-
$generator->startValueElement(
181+
$generator->valueElement(
200182
'status',
201183
$this->getStatusString($contentInfo->status)
202184
);
203-
$generator->endValueElement('status');
204185

205186
$generator->startObjectElement('ObjectStates', 'ContentObjectStates');
206-
$generator->startAttribute(
187+
$generator->attribute(
207188
'href',
208189
$this->router->generate(
209190
'ibexa.rest.get_object_states_for_content',
210191
['contentId' => $contentInfo->id]
211192
)
212193
);
213-
$generator->endAttribute('href');
214194
$generator->endObjectElement('ObjectStates');
215195

216196
$generator->endObjectElement('Content');

0 commit comments

Comments
 (0)