Schema and actual DB submit code added

This commit is contained in:
Finn 2017-07-24 14:55:05 +01:00
parent d38758ac90
commit baea01e8b5
3 changed files with 81 additions and 1 deletions

View file

@ -7,6 +7,9 @@ has error_messages => sub {
required => { message => 'Email is required', status => 400 },
in_resultset => { message => 'Change meeee', status => 400 },
},
feedbacktext => {
required => { message => 'Feedback is required', status => 400 },
},
app_name => {
required => { message => 'App Name is required', status => 400 },
},
@ -30,7 +33,8 @@ sub post_feedback {
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('package_name');
$validation->required('version_code');
@ -38,6 +42,18 @@ sub post_feedback {
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 => {
success => Mojo::JSON->true,
message => 'Thank you for your Feedback!',

View 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;

View file

@ -120,6 +120,13 @@ __PACKAGE__->has_many(
{ 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 {
my $self = shift;