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
|
package VNDB::Handler::ULists;
use strict;
use warnings;
use TUWF ':xml';
use VNDB::Func;
use VNDB::Types;
TUWF::register(
qr{r([1-9]\d*)/list}, \&rlist_e,
qr{xml/rlist.xml}, \&rlist_e,
);
sub rlist_e {
my($self, $id) = @_;
my $rid = $id;
if(!$rid) {
my $f = $self->formValidate({ get => 'id', required => 1, template => 'id' });
return $self->resNotFound if $f->{_err};
$rid = $f->{id};
}
my $uid = $self->authInfo->{id};
return $self->htmlDenied() if !$uid;
return if !$self->authCheckCode;
my $f = $self->formValidate(
{ get => 'e', required => 1, enum => [ -1, keys %RLIST_STATUS ] },
{ get => 'ref', required => 0, default => "/r$rid" }
);
return $self->resNotFound if $f->{_err};
$self->dbRListDel($uid, $rid) if $f->{e} == -1;
$self->dbRListAdd($uid, $rid, $f->{e}) if $f->{e} >= 0;
if($id) {
$self->resRedirect($f->{ref}, 'temp');
} else {
# doesn't really matter what we return, as long as it's XML
$self->resHeader('Content-type' => 'text/xml');
xml;
tag 'done', '';
}
}
1;
|