blob: 0750c9a9c1fe57927e69ec7e095ca0415428f6e6 (
plain)
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
|
use v6.d; use Cro::BodyParser; use Cro::HTTP::Message; use XML; class Cro::BodyParser::VlcXML does Cro::BodyParser { method is-applicable(Cro::HTTP::Message $message --> Bool) { with $message.content-type { .type eq 'application'|'text' && .subtype eq 'xml' || .suffix eq 'json' } else { False } } method parse(Cro::HTTP::Message $message --> Promise) { Promise( supply { my $payload = Blob.new; whenever $message.body-byte-stream -> $blob { $payload ~= $blob; LAST emit from-xml($payload.decode('utf-8')); }
} ) } }
|