comparison mod_rest/mod_rest.lua @ 4242:6a91d217acc9

mod_rest: Add whitespace to improve readability, code navigation I use {} in vim a lot.
author Kim Alvefur <zash@zash.se>
date Thu, 12 Nov 2020 20:37:54 +0100
parents 07ae583bc565
children 07c11080027e
comparison
equal deleted inserted replaced
4241:5e8b54deeb30 4242:6a91d217acc9
184 if err == "unknown-payload-type" then 184 if err == "unknown-payload-type" then
185 return errors.new("mediatype", ctx, post_errors); 185 return errors.new("mediatype", ctx, post_errors);
186 end 186 end
187 return errors.new("parse", ctx, post_errors); 187 return errors.new("parse", ctx, post_errors);
188 end 188 end
189
189 if payload.attr.xmlns then 190 if payload.attr.xmlns then
190 return errors.new("xmlns", nil, post_errors); 191 return errors.new("xmlns", nil, post_errors);
191 elseif payload.name ~= "message" and payload.name ~= "presence" and payload.name ~= "iq" then 192 elseif payload.name ~= "message" and payload.name ~= "presence" and payload.name ~= "iq" then
192 return errors.new("name", nil, post_errors); 193 return errors.new("name", nil, post_errors);
193 end 194 end
195
194 local to = jid.prep(payload.attr.to); 196 local to = jid.prep(payload.attr.to);
195 if not to then 197 if not to then
196 return errors.new("to", nil, post_errors); 198 return errors.new("to", nil, post_errors);
197 end 199 end
200
198 if payload.attr.from then 201 if payload.attr.from then
199 local requested_from = jid.prep(payload.attr.from); 202 local requested_from = jid.prep(payload.attr.from);
200 if not requested_from then 203 if not requested_from then
201 return errors.new("from", nil, post_errors); 204 return errors.new("from", nil, post_errors);
202 end 205 end
204 from = requested_from; 207 from = requested_from;
205 else 208 else
206 return errors.new("from_auth", nil, post_errors); 209 return errors.new("from_auth", nil, post_errors);
207 end 210 end
208 end 211 end
212
209 payload.attr = { 213 payload.attr = {
210 from = from, 214 from = from,
211 to = to, 215 to = to,
212 id = payload.attr.id or id.medium(), 216 id = payload.attr.id or id.medium(),
213 type = payload.attr.type, 217 type = payload.attr.type,
214 ["xml:lang"] = payload.attr["xml:lang"], 218 ["xml:lang"] = payload.attr["xml:lang"],
215 }; 219 };
220
216 module:log("debug", "Received[rest]: %s", payload:top_tag()); 221 module:log("debug", "Received[rest]: %s", payload:top_tag());
217 local send_type = decide_type((request.headers.accept or "") ..",".. request.headers.content_type, supported_outputs) 222 local send_type = decide_type((request.headers.accept or "") ..",".. request.headers.content_type, supported_outputs)
218 if payload.name == "iq" then 223 if payload.name == "iq" then
219 function origin.send(stanza) 224 function origin.send(stanza)
220 module:send(stanza); 225 module:send(stanza);
221 end 226 end
227
222 if payload.attr.type ~= "get" and payload.attr.type ~= "set" then 228 if payload.attr.type ~= "get" and payload.attr.type ~= "set" then
223 return errors.new("iq_type", nil, post_errors); 229 return errors.new("iq_type", nil, post_errors);
224 elseif #payload.tags ~= 1 then 230 elseif #payload.tags ~= 1 then
225 return errors.new("iq_tags", nil, post_errors); 231 return errors.new("iq_tags", nil, post_errors);
226 end 232 end
233
227 return module:send_iq(payload, origin):next( 234 return module:send_iq(payload, origin):next(
228 function (result) 235 function (result)
229 module:log("debug", "Sending[rest]: %s", result.stanza:top_tag()); 236 module:log("debug", "Sending[rest]: %s", result.stanza:top_tag());
230 response.headers.content_type = send_type; 237 response.headers.content_type = send_type;
231 return encode(send_type, result.stanza); 238 return encode(send_type, result.stanza);
247 module:log("debug", "Sending[rest]: %s", stanza:top_tag()); 254 module:log("debug", "Sending[rest]: %s", stanza:top_tag());
248 response.headers.content_type = send_type; 255 response.headers.content_type = send_type;
249 response:send(encode(send_type, stanza)); 256 response:send(encode(send_type, stanza));
250 return true; 257 return true;
251 end 258 end
259
252 module:send(payload, origin); 260 module:send(payload, origin);
253 return 202; 261 return 202;
254 end 262 end
255 end 263 end
256 264