Schema and actual DB submit code added
This commit is contained in:
parent
d38758ac90
commit
baea01e8b5
3 changed files with 81 additions and 1 deletions
|
@ -7,6 +7,9 @@ has error_messages => sub {
|
||||||
required => { message => 'Email is required', status => 400 },
|
required => { message => 'Email is required', status => 400 },
|
||||||
in_resultset => { message => 'Change meeee', status => 400 },
|
in_resultset => { message => 'Change meeee', status => 400 },
|
||||||
},
|
},
|
||||||
|
feedbacktext => {
|
||||||
|
required => { message => 'Feedback is required', status => 400 },
|
||||||
|
},
|
||||||
app_name => {
|
app_name => {
|
||||||
required => { message => 'App Name is required', status => 400 },
|
required => { message => 'App Name is required', status => 400 },
|
||||||
},
|
},
|
||||||
|
@ -30,7 +33,8 @@ sub post_feedback {
|
||||||
|
|
||||||
my $user_rs = $c->schema->resultset('User');
|
my $user_rs = $c->schema->resultset('User');
|
||||||
|
|
||||||
$validation->required('email')->in_reusltset( 'email', $user_rs );
|
$validation->required('email')->in_resultset( 'email', $user_rs );
|
||||||
|
$validation->required('feedbacktext');
|
||||||
$validation->required('app_name');
|
$validation->required('app_name');
|
||||||
$validation->required('package_name');
|
$validation->required('package_name');
|
||||||
$validation->required('version_code');
|
$validation->required('version_code');
|
||||||
|
@ -38,6 +42,18 @@ sub post_feedback {
|
||||||
|
|
||||||
return $c->api_validation_error if $validation->has_error;
|
return $c->api_validation_error if $validation->has_error;
|
||||||
|
|
||||||
|
my $user = $user_rs->find({'email' => $validation->param('email')});
|
||||||
|
|
||||||
|
$c->schema->resultset('Feedback')->create({
|
||||||
|
email => $validation->param('email'),
|
||||||
|
user => $user,
|
||||||
|
feedbacktext => $validation->param('feedbacktext'),
|
||||||
|
app_name => $validation->param('app_name'),
|
||||||
|
package_name => $validation->param('package_name'),
|
||||||
|
version_code => $validation->param('version_code'),
|
||||||
|
version_number => $validation->param('version_number'),
|
||||||
|
});
|
||||||
|
|
||||||
return $c->render( json => {
|
return $c->render( json => {
|
||||||
success => Mojo::JSON->true,
|
success => Mojo::JSON->true,
|
||||||
message => 'Thank you for your Feedback!',
|
message => 'Thank you for your Feedback!',
|
||||||
|
|
57
lib/Pear/LocalLoop/Schema/Result/Feedback.pm
Normal file
57
lib/Pear/LocalLoop/Schema/Result/Feedback.pm
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
package Pear::LocalLoop::Schema::Result::Feedback;
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
|
__PACKAGE__->table("feedback");
|
||||||
|
|
||||||
|
__PACKAGE__->add_columns(
|
||||||
|
"id",
|
||||||
|
{ data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
|
||||||
|
"email" => {
|
||||||
|
data_type => "text",
|
||||||
|
is_nullable => 0,
|
||||||
|
},
|
||||||
|
"user_id" => {
|
||||||
|
data_type => "integer",
|
||||||
|
is_foreign_key => 1,
|
||||||
|
is_nullable => 0,
|
||||||
|
},
|
||||||
|
"feedbacktext" => {
|
||||||
|
data_type => "text",
|
||||||
|
is_nullable => 0,
|
||||||
|
},
|
||||||
|
"app_name" => {
|
||||||
|
data_type => "varchar",
|
||||||
|
size => 255,
|
||||||
|
is_nullable => 0,
|
||||||
|
},
|
||||||
|
"package_name" => {
|
||||||
|
data_type => "varchar",
|
||||||
|
size => 255,
|
||||||
|
is_nullable => 0,
|
||||||
|
},
|
||||||
|
"version_code" => {
|
||||||
|
data_type => "varchar",
|
||||||
|
size => 255,
|
||||||
|
is_nullable => 0,
|
||||||
|
},
|
||||||
|
"version_number" => {
|
||||||
|
data_type => "varchar",
|
||||||
|
size => 255,
|
||||||
|
is_nullable => 0,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
__PACKAGE__->set_primary_key("id");
|
||||||
|
|
||||||
|
_PACKAGE__->belongs_to(
|
||||||
|
"user",
|
||||||
|
"Pear::LocalLoop::Schema::Result::User",
|
||||||
|
{ id => "user_id" },
|
||||||
|
{ is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
|
||||||
|
);
|
||||||
|
|
||||||
|
1;
|
|
@ -120,6 +120,13 @@ __PACKAGE__->has_many(
|
||||||
{ cascade_copy => 0, cascade_delete => 0 },
|
{ cascade_copy => 0, cascade_delete => 0 },
|
||||||
);
|
);
|
||||||
|
|
||||||
|
__PACKAGE__->has_many(
|
||||||
|
"feedback",
|
||||||
|
"Pear::LocalLoop::Schema::Result::Feedback",
|
||||||
|
{ "foreign.user_id" => "self.id" },
|
||||||
|
{ cascade_copy => 0, cascade_delete => 0 },
|
||||||
|
);
|
||||||
|
|
||||||
sub generate_session {
|
sub generate_session {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
|
|
Reference in a new issue