Skip to content
This repository was archived by the owner on Aug 8, 2019. It is now read-only.

Commit 9f93d6e

Browse files
committed
Improve design of crud user
1 parent 9af6b3a commit 9f93d6e

File tree

28 files changed

+643
-504
lines changed

28 files changed

+643
-504
lines changed

node_modules/.yarn-integrity

Lines changed: 0 additions & 12 deletions
This file was deleted.

rails-time-track/app/controllers/api/users_controller.rb

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module Api
22
class Api::UsersController < ApplicationController
3-
before_action :set_user, only: [:show, :update, :destroy]
3+
before_action :set_user, only: [:show, :update]
44

55
def index
66
render json: User.all
@@ -11,7 +11,7 @@ def create
1111
if user.save
1212
render json: user, status: :created
1313
else
14-
render json: { errors: user.errors}, status: :unprocessable_entity
14+
render_errors(user.errors.full_messages.join("\n"), :unprocessable_entity)
1515
end
1616
end
1717

@@ -23,21 +23,16 @@ def update
2323
if @user.update(user_params)
2424
render json: @user, status: :ok
2525
else
26-
render json: {errors: user.errors}
26+
render_errors(@user.errors.full_messages.join("\n"), :unprocessable_entity)
2727
end
2828
end
2929

30-
def destroy
31-
@user.destroy
32-
render json: {}, status: :no_content
33-
end
34-
3530
def availableTime
3631
render json: User.all, each_serializer: UserAvailableTimeSerializer, option_name: params
3732
end
3833

3934
rescue_from ActiveRecord::RecordNotFound do |e|
40-
render json: { message: e.message }, status: :not_found
35+
render_errors(e.message, :not_found)
4136
end
4237

4338
private

rails-time-track/app/models/user.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
class User < ApplicationRecord
22

3+
validates :name, :rate, presence: true
34
validates :email, format: { with: /[a-zA-Z0-9]*@[a-zA-Z]*.[a-zA-Z0-9]*/, message: "Bad format" }, presence: true, uniqueness: true
4-
# validates :name, presence: true
5-
# validates :role, presence true
6-
# validates :rate, presence true
5+
validates :role, inclusion: { in: ["Owner","Analyst", "Manager"] , message: "%{value} is not a valid role" }
6+
77

88
has_secure_password
99
has_secure_token
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
class UserSerializer < ActiveModel::Serializer
2-
attributes :id, :name, :email, :role, :rate
2+
attributes :id, :name, :email, :role, :rate, :isActive
33
end
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class AddEnableToUsers < ActiveRecord::Migration[5.2]
2+
def change
3+
add_column :users, :isActive, :boolean, default: true
4+
end
5+
end

rails-time-track/db/schema.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#
1111
# It's strongly recommended that you check this file into your version control system.
1212

13-
ActiveRecord::Schema.define(version: 2019_07_31_161326) do
13+
ActiveRecord::Schema.define(version: 2019_08_05_211420) do
1414

1515
# These are extensions that must be enabled in order to support this database
1616
enable_extension "plpgsql"
@@ -69,6 +69,7 @@
6969
t.string "token"
7070
t.string "reset_digest"
7171
t.string "reset_created_at"
72+
t.boolean "isActive", default: true
7273
t.index ["token"], name: "index_users_on_token"
7374
end
7475

rails-time-track/db/seeds.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
manager1 = User.create(
1414
name: "Brayan Manager",
15-
email: "linzeur@hotmail.com",
15+
email: "linzeur@hotmail.com",j
1616
password: "123456",
1717
role: "Manager",
1818
rate: 4300
@@ -23,7 +23,8 @@
2323
email: "manager2@mail.com",
2424
password: "123456",
2525
role: "Manager",
26-
rate: 4500
26+
rate: 4500,
27+
isActive: false
2728
)
2829

2930
analyst1 = User.create(
@@ -35,7 +36,7 @@
3536
)
3637

3738
analyst2 = User.create(
38-
name: "Lucia Analyst",
39+
name: "Lian Analyst",
3940
email: "analyst2@mail.com",
4041
password: "123456",
4142
role: "Analyst",
@@ -55,7 +56,8 @@
5556
email: "analyst4@mail.com",
5657
password: "123456",
5758
role: "Analyst",
58-
rate: 1300
59+
rate: 1300,
60+
isActive: false
5961
)
6062

6163
#Create projects

react-time-track/package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,14 @@
88
"@testing-library/react": "^8.0.4",
99
"chart.js": "^2.8.0",
1010
"jest-fetch-mock": "^2.1.2",
11+
"prop-types": "^15.7.2",
1112
"react": "^16.8.6",
13+
"react-alert": "^5.5.0",
14+
"react-alert-template-basic": "^1.0.0",
1215
"react-dom": "^16.8.6",
1316
"react-icons": "^3.7.0",
14-
"react-scripts": "3.0.1"
17+
"react-scripts": "3.0.1",
18+
"react-transition-group": "^4.2.2"
1519
},
1620
"scripts": {
1721
"start": "PORT=4000 react-scripts start",

react-time-track/src/app.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import MyStatus from "./views/my-status";
2222

2323
function App() {
2424
const logged = React.useContext(UserContext);
25-
const currentUser = React.useContext(UserContext).data;
2625

2726
return (
2827
<Router>
@@ -51,10 +50,10 @@ function App() {
5150
<ProgressProjectUser path="/projects/:project_id/users/:user_id" />
5251
<ProgressProjectUser path="/users/:user_id/projects/:project_id" />
5352
<CreateProject path="/create-project" />
54-
<CreateUser path="/create-user" />
55-
<Users path="/users" />
5653
<DailyLog path="/daily-log" />
57-
<EditUser path="edit-user/:user_id" />
54+
<Users path="/users" />
55+
<CreateUser path="/users/new" />
56+
<EditUser path="/users/:user_id" />
5857
</Home>
5958
</Router>
6059
);

0 commit comments

Comments
 (0)