From 94590699b9c768aaf8010b364480d968c834f1e9 Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Sat, 22 Jan 2022 18:27:00 +0100 Subject: [PATCH] Ressource User --- app/controllers/users_controller.rb | 70 +++++++++++++++++++ app/views/shared/_main_menu.html.erb | 4 +- app/{views.old => views}/users/_form.html.erb | 0 app/{views.old => views}/users/_user.html.erb | 0 .../users/_user.json.jbuilder | 0 app/{views.old => views}/users/edit.html.erb | 0 app/{views.old => views}/users/index.html.erb | 12 ++-- .../users/index.json.jbuilder | 0 app/{views.old => views}/users/new.html.erb | 0 app/{views.old => views}/users/show.html.erb | 0 .../users/show.json.jbuilder | 0 config/routes.rb | 1 + test/controllers/users_controller_test.rb | 48 +++++++++++++ 13 files changed, 129 insertions(+), 6 deletions(-) create mode 100644 app/controllers/users_controller.rb rename app/{views.old => views}/users/_form.html.erb (100%) rename app/{views.old => views}/users/_user.html.erb (100%) rename app/{views.old => views}/users/_user.json.jbuilder (100%) rename app/{views.old => views}/users/edit.html.erb (100%) rename app/{views.old => views}/users/index.html.erb (85%) rename app/{views.old => views}/users/index.json.jbuilder (100%) rename app/{views.old => views}/users/new.html.erb (100%) rename app/{views.old => views}/users/show.html.erb (100%) rename app/{views.old => views}/users/show.json.jbuilder (100%) create mode 100644 test/controllers/users_controller_test.rb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb new file mode 100644 index 0000000..f6358c8 --- /dev/null +++ b/app/controllers/users_controller.rb @@ -0,0 +1,70 @@ +class UsersController < ApplicationController + before_action :set_user, only: %i[ show edit update destroy ] + + # GET /users or /users.json + def index + @users = User.all + end + + # GET /users/1 or /users/1.json + def show + end + + # GET /users/new + def new + @user = User.new + end + + # GET /users/1/edit + def edit + end + + # POST /users or /users.json + def create + @user = User.new(user_params) + + respond_to do |format| + if @user.save + format.html { redirect_to user_url(@user), notice: "User was successfully created." } + format.json { render :show, status: :created, location: @user } + else + format.html { render :new, status: :unprocessable_entity } + format.json { render json: @user.errors, status: :unprocessable_entity } + end + end + end + + # PATCH/PUT /users/1 or /users/1.json + def update + respond_to do |format| + if @user.update(user_params) + format.html { redirect_to user_url(@user), notice: "User was successfully updated." } + format.json { render :show, status: :ok, location: @user } + else + format.html { render :edit, status: :unprocessable_entity } + format.json { render json: @user.errors, status: :unprocessable_entity } + end + end + end + + # DELETE /users/1 or /users/1.json + def destroy + @user.destroy + + respond_to do |format| + format.html { redirect_to users_url, notice: "User was successfully destroyed." } + format.json { head :no_content } + end + end + + private + # Use callbacks to share common setup or constraints between actions. + def set_user + @user = User.find(params[:id]) + end + + # Only allow a list of trusted parameters through. + def user_params + params.fetch(:user, {}) + end +end diff --git a/app/views/shared/_main_menu.html.erb b/app/views/shared/_main_menu.html.erb index 2529016..4a5e090 100644 --- a/app/views/shared/_main_menu.html.erb +++ b/app/views/shared/_main_menu.html.erb @@ -5,7 +5,7 @@ <% end %> <% if controller_name == "users" %> - <%#= link_to "Users", users_path, class: common_classes + " " + active_classes %> + <%= link_to "Users", users_path, class: common_classes + " " + active_classes %> <% else %> - <%#= link_to "Users", users_path, class: common_classes + " " + inactive_classes %> + <%= link_to "Users", users_path, class: common_classes + " " + inactive_classes %> <% end %> \ No newline at end of file diff --git a/app/views.old/users/_form.html.erb b/app/views/users/_form.html.erb similarity index 100% rename from app/views.old/users/_form.html.erb rename to app/views/users/_form.html.erb diff --git a/app/views.old/users/_user.html.erb b/app/views/users/_user.html.erb similarity index 100% rename from app/views.old/users/_user.html.erb rename to app/views/users/_user.html.erb diff --git a/app/views.old/users/_user.json.jbuilder b/app/views/users/_user.json.jbuilder similarity index 100% rename from app/views.old/users/_user.json.jbuilder rename to app/views/users/_user.json.jbuilder diff --git a/app/views.old/users/edit.html.erb b/app/views/users/edit.html.erb similarity index 100% rename from app/views.old/users/edit.html.erb rename to app/views/users/edit.html.erb diff --git a/app/views.old/users/index.html.erb b/app/views/users/index.html.erb similarity index 85% rename from app/views.old/users/index.html.erb rename to app/views/users/index.html.erb index f8341f5..caffa59 100644 --- a/app/views.old/users/index.html.erb +++ b/app/views/users/index.html.erb @@ -1,5 +1,3 @@ - -
@@ -15,11 +13,14 @@ + <% @users.each do |user| %> "> +
+ Gravatar + Email - Display name + Name Created at @@ -35,11 +36,14 @@
+ <%= user_gravatar current_user, class: "h-10 w-10 rounded-full", size: 80 %> + <%= user.email %> - <%= user.display_name %> + <%= user.name %> <%= user.created_at %> diff --git a/app/views.old/users/index.json.jbuilder b/app/views/users/index.json.jbuilder similarity index 100% rename from app/views.old/users/index.json.jbuilder rename to app/views/users/index.json.jbuilder diff --git a/app/views.old/users/new.html.erb b/app/views/users/new.html.erb similarity index 100% rename from app/views.old/users/new.html.erb rename to app/views/users/new.html.erb diff --git a/app/views.old/users/show.html.erb b/app/views/users/show.html.erb similarity index 100% rename from app/views.old/users/show.html.erb rename to app/views/users/show.html.erb diff --git a/app/views.old/users/show.json.jbuilder b/app/views/users/show.json.jbuilder similarity index 100% rename from app/views.old/users/show.json.jbuilder rename to app/views/users/show.json.jbuilder diff --git a/config/routes.rb b/config/routes.rb index 5f34a8c..4e01725 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -19,4 +19,5 @@ Rails.application.routes.draw do resources :passwords, only: [:create, :edit, :new, :update], param: :password_reset_token resources :checks + resources :users end diff --git a/test/controllers/users_controller_test.rb b/test/controllers/users_controller_test.rb new file mode 100644 index 0000000..77ea490 --- /dev/null +++ b/test/controllers/users_controller_test.rb @@ -0,0 +1,48 @@ +require "test_helper" + +class UsersControllerTest < ActionDispatch::IntegrationTest + setup do + @user = users(:one) + end + + test "should get index" do + get users_url + assert_response :success + end + + test "should get new" do + get new_user_url + assert_response :success + end + + test "should create user" do + assert_difference("User.count") do + post users_url, params: { user: { } } + end + + assert_redirected_to user_url(User.last) + end + + test "should show user" do + get user_url(@user) + assert_response :success + end + + test "should get edit" do + get edit_user_url(@user) + assert_response :success + end + + test "should update user" do + patch user_url(@user), params: { user: { } } + assert_redirected_to user_url(@user) + end + + test "should destroy user" do + assert_difference("User.count", -1) do + delete user_url(@user) + end + + assert_redirected_to users_url + end +end