return $rs;
}
+=head2 update
+
+this implementation uses old slash's updateStory($sid, $data),
+$sid is takable sid or stoid.
+
+=cut
+
+sub update {
+ my ($self, $params, $user, $extra_params, $opts) = @_;
+ $opts ||= {};
+ $opts->{update} = 1;
+ if (!$params->{stoid}) {
+ $self->set_error("stoid not given");
+ return;
+ }
+ return $self->create($params, $user, $extra_params, $opts);
+}
+
+
=head2 create(\%params, $uid)
create a story.
sub create {
my ($self, $params, $user, $extra_params, $opts) = @_;
return if $self->check_readonly;
+ $opts ||= {};
# check parameters
my $msg = "";
my $topics_chosen = $params->{topics_chosen};
my $slash_db = Newslash::Model::SlashDB->new($self->{options});
- my ($sid, $stoid) = $slash_db->createStory($params);
+ my ($sid, $stoid);
+ if ($opts->{update}) {
+ my $rs = $slash_db->updateStory($params->{stoid}, $params);
+ if (!$rs) {
+ return;
+ }
+ $sid = $params->{sid};
+ $stoid = $params->{stoid};
+ }
+ else {
+ ($sid, $stoid) = $slash_db->createStory($params);
+ }
my $globjs = $self->new_instance_of("Newslash::Model::Globjs");
my $globj_id = $globjs->getGlobjidFromTargetIfExists("stories", $params->{stoid});
globj_id => $globj_id,
private => 0,
);
- warn "set_tag fault..." if !$ret
+ #warn "set_tag fault..." if !$ret
}
}
#return $sid;
}
$story->{time_string} = format_datetime($story->{time});
+ $story->{createtime} = $story->{time};
$story->{discussion_id} = $story->{discussion};
}
};
my $stoid = $stories->create($params, $admin);
ok($stoid, "create story");
+ #diag(Dumper($params));
+
+ my $new_text = "<p>foo bar hoge hoge</p>";
+ $params->{introtext} = $new_text;
+ $params->{topics_chosen} = {49 => 10, 2271 => 20};
+ my $rs = $stories->update($params, $admin);
+ ok($rs, "update story");
+ diag $stories->last_error if !$rs;
my $story = $stories->select(stoid => $stoid);
ok($story, "select story by stoid");
+ is($story->{introtext}, $new_text, "update story correctly");
ok($stories->hard_delete(stoid => $stoid), "delete story");