Werfter22 / IPA-Vorprojekt

0 stars 0 forks source link

CURD - Problem Mojolicious Backend #2

Open Werfter22 opened 1 day ago

Werfter22 commented 1 day ago

Da ich relativ neu mit dem Mojolicious Framework und Perl bin, hatte ich einige Schwierigkeiten bei der Erstellung des CRUDS. Jetzt ist es aber das Ziel, dass ich mit den entsprechenden Templates arbeite und meinen PHP-Code damit ersetzen kann.

Werfter22 commented 2 hours ago

Controller::Users Beispiel:

package Controller::Users;

use strict;
use warnings;
use Mojolicious::Lite;
use Mojo::UserAgent;  # For API calls to the database

# Route to fetch and render all users to the users template
get '/users' => sub {
    my $c = shift;

    # Fetch users from the external database API
    my ($users, $error_msg) = get_all_users_from_api();

    # Check if users were successfully fetched
    if (!$users) {
        $c->stash(error_msg => $error_msg || 'Failed to fetch users');
        return $c->render(template => 'users', users => []);
    }

    # Pass the users data to the template
    $c->stash(users => $users);
    $c->render(template => 'users');
};

# Method to fetch all users via the API
sub get_all_users_from_api {
    my $ua = Mojo::UserAgent->new;
    my $db_api_url = "http://127.0.0.1:3000/api/users";  # URL of your database API

    my $tx = $ua->get($db_api_url);

    if ($tx->result->is_success) {
        return ($tx->result->json, undef);
    } else {
        return (undef, "API call failed: " . $tx->result->message);
    }
}

1;  # End of the module
Werfter22 commented 2 hours ago

Das Frontend für Mojolicious wurde erstellt mit den Templates.

Werfter22 commented 2 hours ago

Nun müssen die Controller und der API input geändert werden in jedem Controller.

Image

Werfter22 commented 1 hour ago

Backend für Template wurde auch zu einem gross Teil erledigt.