summaryrefslogtreecommitdiff
path: root/lib/VNWeb/User/Lists.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VNWeb/User/Lists.pm')
-rw-r--r--lib/VNWeb/User/Lists.pm58
1 files changed, 15 insertions, 43 deletions
diff --git a/lib/VNWeb/User/Lists.pm b/lib/VNWeb/User/Lists.pm
index 9620eb80..6df2b345 100644
--- a/lib/VNWeb/User/Lists.pm
+++ b/lib/VNWeb/User/Lists.pm
@@ -27,9 +27,7 @@ my $LABELS = form_compile any => {
} }
};
-elm_form 'UListManageLabels', undef, $LABELS;
-
-json_api qr{/u/ulist/labels\.json}, $LABELS, sub {
+elm_api UListManageLabels => undef, $LABELS, sub {
my($uid, $labels) = ($_[0]{uid}, $_[0]{labels});
return elm_Unauth if !own $uid;
@@ -88,9 +86,7 @@ my $VNVOTE = form_compile any => {
vote => { vnvote => 1 },
};
-elm_form 'UListVoteEdit', undef, $VNVOTE;
-
-json_api qr{/u/ulist/setvote\.json}, $VNVOTE, sub {
+elm_api UListVoteEdit => undef, $VNVOTE, sub {
my($data) = @_;
return elm_Unauth if !own $data->{uid};
tuwf->dbExeci(
@@ -120,9 +116,7 @@ my $VNLABELS = {
my $VNLABELS_OUT = form_compile out => $VNLABELS;
my $VNLABELS_IN = form_compile in => $VNLABELS;
-elm_form 'UListLabelEdit', $VNLABELS_OUT, $VNLABELS_IN;
-
-json_api qr{/u/ulist/setlabel\.json}, $VNLABELS_IN, sub {
+elm_api UListLabelEdit => $VNLABELS_OUT, $VNLABELS_IN, sub {
my($data) = @_;
return elm_Unauth if !own $data->{uid};
die "Attempt to set vote label" if $data->{label} == 7;
@@ -151,9 +145,7 @@ my $VNDATE = form_compile any => {
start => { anybool => 1 }, # Field selection, started/finished
};
-elm_form 'UListDateEdit', undef, $VNDATE;
-
-json_api qr{/u/ulist/setdate\.json}, $VNDATE, sub {
+elm_api UListDateEdit => undef, $VNDATE, sub {
my($data) = @_;
return elm_Unauth if !own $data->{uid};
tuwf->dbExeci(
@@ -184,20 +176,14 @@ my $VNOPT = form_compile any => {
relstatus => { type => 'array', values => { uint => 1 } }, # List of release statuses, same order as rels
};
-elm_form 'UListVNOpt', $VNOPT, undef;
-
-
-my $VNNOTES = form_compile any => {
+# UListVNNotes module is abused for the UList.Opts flag definition
+elm_api UListVNNotes => $VNOPT, {
uid => { id => 1 },
vid => { id => 1 },
notes => { required => 0, default => '', maxlength => 2000 },
-};
-
-elm_form 'UListVNNotes', undef, $VNNOTES;
-
-json_api qr{/u/ulist/setnote\.json}, $VNNOTES, sub {
+}, sub {
my($data) = @_;
return elm_Unauth if !own $data->{uid};
tuwf->dbExeci(
@@ -211,14 +197,10 @@ json_api qr{/u/ulist/setnote\.json}, $VNNOTES, sub {
-my $VNDEL = form_compile any => {
+elm_api UListDel => undef, {
uid => { id => 1 },
vid => { id => 1 },
-};
-
-elm_form 'UListDel', undef, $VNDEL;
-
-json_api qr{/u/ulist/del\.json}, $VNDEL, sub {
+}, sub {
my($data) = @_;
return elm_Unauth if !own $data->{uid};
tuwf->dbExeci('DELETE FROM ulist_vns WHERE uid =', \$data->{uid}, 'AND vid =', \$data->{vid});
@@ -229,14 +211,10 @@ json_api qr{/u/ulist/del\.json}, $VNDEL, sub {
-my $VNADD = form_compile any => {
+elm_api UListAdd => undef, {
uid => { id => 1 },
vid => { id => 1 },
-};
-
-elm_form 'UListAdd', undef, $VNADD;
-
-json_api qr{/u/ulist/add\.json}, $VNADD, sub {
+}, sub {
my($data) = @_;
return elm_Unauth if !own $data->{uid};
tuwf->dbExeci('INSERT INTO ulist_vns', $data, 'ON CONFLICT (uid, vid) DO NOTHING');
@@ -247,16 +225,12 @@ json_api qr{/u/ulist/add\.json}, $VNADD, sub {
-my $RSTATUS = form_compile any => {
+# Adds the release when not in the list.
+elm_api UListRStatus => undef, {
uid => { id => 1 },
rid => { id => 1 },
status => { int => 1, enum => [ -1, keys %RLIST_STATUS ] }, # -1 meaning delete
-};
-
-elm_form 'UListRStatus', undef, $RSTATUS;
-
-# Adds the release when not in the list.
-json_api qr{/u/ulist/rstatus\.json}, $RSTATUS, sub {
+}, sub {
my($data) = @_;
return elm_Unauth if !own $data->{uid};
if($data->{status} == -1) {
@@ -291,9 +265,7 @@ my $SAVED_OPTS = {
my $SAVED_OPTS_IN = form_compile in => $SAVED_OPTS;
my $SAVED_OPTS_OUT = form_compile out => $SAVED_OPTS;
-elm_form UListSaveDefault => $SAVED_OPTS_OUT, $SAVED_OPTS_IN;
-
-json_api qr{/u/ulist/savedefault\.json}, $SAVED_OPTS_IN, sub {
+elm_api UListSaveDefault => $SAVED_OPTS_OUT, $SAVED_OPTS_IN, sub {
my($data) = @_;
return elm_Unauth if !own $data->{uid};
tuwf->dbExeci('UPDATE users SET ulist_'.$data->{field}, '=', \JSON::XS->new->encode($data->{opts}), 'WHERE id =', \$data->{uid});