Merge pull request #7 from jedmund/account-settings
Added support for account settings
This commit is contained in:
commit
376c286a77
9 changed files with 64 additions and 8 deletions
|
|
@ -2,6 +2,7 @@ class Api::V1::UsersController < Api::V1::ApiController
|
|||
class ForbiddenError < StandardError; end
|
||||
|
||||
before_action :set, except: ['create', 'check_email', 'check_username']
|
||||
before_action :set_by_id, only: ['info', 'update']
|
||||
|
||||
def create
|
||||
@user = User.new(user_params)
|
||||
|
|
@ -24,6 +25,15 @@ class Api::V1::UsersController < Api::V1::ApiController
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
def update
|
||||
render :info, status: :ok if @user.update(user_params)
|
||||
end
|
||||
|
||||
def info
|
||||
render :info, status: :ok
|
||||
end
|
||||
|
||||
def show
|
||||
if @user
|
||||
now = DateTime.current
|
||||
|
|
@ -63,9 +73,6 @@ class Api::V1::UsersController < Api::V1::ApiController
|
|||
render :available
|
||||
end
|
||||
|
||||
def update
|
||||
end
|
||||
|
||||
def destroy
|
||||
end
|
||||
|
||||
|
|
@ -76,7 +83,14 @@ class Api::V1::UsersController < Api::V1::ApiController
|
|||
@user = User.where("username = ?", params[:id]).first
|
||||
end
|
||||
|
||||
def set_by_id
|
||||
@user = User.where("id = ?", params[:id]).first
|
||||
end
|
||||
|
||||
def user_params
|
||||
params.require(:user).permit(:username, :email, :password, :password_confirmation, :granblue_id)
|
||||
params.require(:user).permit(
|
||||
:username, :email, :password, :password_confirmation,
|
||||
:granblue_id, :picture, :element, :language, :private
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
@ -2,4 +2,13 @@ object :user
|
|||
|
||||
attributes :id,
|
||||
:username,
|
||||
:granblue_id
|
||||
:granblue_id,
|
||||
:language,
|
||||
:private
|
||||
|
||||
node :picture do |u|
|
||||
{
|
||||
:picture => u.picture,
|
||||
:element => u.element
|
||||
}
|
||||
end
|
||||
3
app/views/api/v1/users/info.rabl
Normal file
3
app/views/api/v1/users/info.rabl
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
object @user
|
||||
|
||||
extends 'api/v1/users/base'
|
||||
|
|
@ -7,16 +7,17 @@ Rails.application.routes.draw do
|
|||
namespace :api, defaults: { format: :json } do
|
||||
namespace :v1 do
|
||||
resources :parties, only: [:index, :create, :update, :destroy]
|
||||
resources :users, only: [:create, :show]
|
||||
resources :users, only: [:create, :update, :show]
|
||||
resources :grid_weapons, only: [:update]
|
||||
resources :favorites, only: [:create]
|
||||
|
||||
get 'users/info/:id', to: 'users#info'
|
||||
|
||||
get 'parties/favorites', to: 'parties#favorites'
|
||||
get 'parties/:id', to: 'parties#show'
|
||||
get 'parties/:id/weapons', to: 'parties#weapons'
|
||||
get 'parties/:id/summons', to: 'parties#summons'
|
||||
get 'parties/:id/characters', to: 'parties#characters'
|
||||
get 'parties/all', to: 'parties#all'
|
||||
|
||||
post 'check/email', to: 'users#check_email'
|
||||
post 'check/username', to: 'users#check_username'
|
||||
|
|
|
|||
7
db/migrate/20220304091218_add_fields_to_user.rb
Normal file
7
db/migrate/20220304091218_add_fields_to_user.rb
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
class AddFieldsToUser < ActiveRecord::Migration[6.1]
|
||||
def change
|
||||
add_column :users, :picture, :string
|
||||
add_column :users, :language, :string
|
||||
add_column :users, :private, :boolean
|
||||
end
|
||||
end
|
||||
7
db/migrate/20220304091854_add_default_values_to_user.rb
Normal file
7
db/migrate/20220304091854_add_default_values_to_user.rb
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
class AddDefaultValuesToUser < ActiveRecord::Migration[6.1]
|
||||
def change
|
||||
change_column :users, :picture, :string, :default => "gran"
|
||||
change_column :users, :language, :string, :default => "en"
|
||||
change_column :users, :private, :boolean, :default => false
|
||||
end
|
||||
end
|
||||
6
db/migrate/20220304092134_add_not_nullable_to_user.rb
Normal file
6
db/migrate/20220304092134_add_not_nullable_to_user.rb
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
class AddNotNullableToUser < ActiveRecord::Migration[6.1]
|
||||
def change
|
||||
change_column :users, :language, :string, :default => "en", :null => false
|
||||
change_column :users, :private, :boolean, :default => false, :null => false
|
||||
end
|
||||
end
|
||||
5
db/migrate/20220304115434_add_element_to_user.rb
Normal file
5
db/migrate/20220304115434_add_element_to_user.rb
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
class AddElementToUser < ActiveRecord::Migration[6.1]
|
||||
def change
|
||||
add_column :users, :element, :string, :default => "water", :null => false
|
||||
end
|
||||
end
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 2022_03_03_092208) do
|
||||
ActiveRecord::Schema.define(version: 2022_03_04_115434) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "pgcrypto"
|
||||
|
|
@ -186,6 +186,10 @@ ActiveRecord::Schema.define(version: 2022_03_03_092208) do
|
|||
t.integer "granblue_id"
|
||||
t.datetime "created_at", precision: 6, null: false
|
||||
t.datetime "updated_at", precision: 6, null: false
|
||||
t.string "picture", default: "gran"
|
||||
t.string "language", default: "en", null: false
|
||||
t.boolean "private", default: false, null: false
|
||||
t.string "element", default: "water", null: false
|
||||
end
|
||||
|
||||
create_table "weapon_keys", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
||||
|
|
|
|||
Loading…
Reference in a new issue