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
|
class ForbiddenError < StandardError; end
|
||||||
|
|
||||||
before_action :set, except: ['create', 'check_email', 'check_username']
|
before_action :set, except: ['create', 'check_email', 'check_username']
|
||||||
|
before_action :set_by_id, only: ['info', 'update']
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@user = User.new(user_params)
|
@user = User.new(user_params)
|
||||||
|
|
@ -24,6 +25,15 @@ class Api::V1::UsersController < Api::V1::ApiController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def update
|
||||||
|
render :info, status: :ok if @user.update(user_params)
|
||||||
|
end
|
||||||
|
|
||||||
|
def info
|
||||||
|
render :info, status: :ok
|
||||||
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
if @user
|
if @user
|
||||||
now = DateTime.current
|
now = DateTime.current
|
||||||
|
|
@ -63,9 +73,6 @@ class Api::V1::UsersController < Api::V1::ApiController
|
||||||
render :available
|
render :available
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
|
||||||
end
|
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -76,7 +83,14 @@ class Api::V1::UsersController < Api::V1::ApiController
|
||||||
@user = User.where("username = ?", params[:id]).first
|
@user = User.where("username = ?", params[:id]).first
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def set_by_id
|
||||||
|
@user = User.where("id = ?", params[:id]).first
|
||||||
|
end
|
||||||
|
|
||||||
def user_params
|
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
|
||||||
end
|
end
|
||||||
|
|
@ -2,4 +2,13 @@ object :user
|
||||||
|
|
||||||
attributes :id,
|
attributes :id,
|
||||||
:username,
|
: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 :api, defaults: { format: :json } do
|
||||||
namespace :v1 do
|
namespace :v1 do
|
||||||
resources :parties, only: [:index, :create, :update, :destroy]
|
resources :parties, only: [:index, :create, :update, :destroy]
|
||||||
resources :users, only: [:create, :show]
|
resources :users, only: [:create, :update, :show]
|
||||||
resources :grid_weapons, only: [:update]
|
resources :grid_weapons, only: [:update]
|
||||||
resources :favorites, only: [:create]
|
resources :favorites, only: [:create]
|
||||||
|
|
||||||
|
get 'users/info/:id', to: 'users#info'
|
||||||
|
|
||||||
get 'parties/favorites', to: 'parties#favorites'
|
get 'parties/favorites', to: 'parties#favorites'
|
||||||
get 'parties/:id', to: 'parties#show'
|
get 'parties/:id', to: 'parties#show'
|
||||||
get 'parties/:id/weapons', to: 'parties#weapons'
|
get 'parties/:id/weapons', to: 'parties#weapons'
|
||||||
get 'parties/:id/summons', to: 'parties#summons'
|
get 'parties/:id/summons', to: 'parties#summons'
|
||||||
get 'parties/:id/characters', to: 'parties#characters'
|
get 'parties/:id/characters', to: 'parties#characters'
|
||||||
get 'parties/all', to: 'parties#all'
|
|
||||||
|
|
||||||
post 'check/email', to: 'users#check_email'
|
post 'check/email', to: 'users#check_email'
|
||||||
post 'check/username', to: 'users#check_username'
|
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.
|
# 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
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "pgcrypto"
|
enable_extension "pgcrypto"
|
||||||
|
|
@ -186,6 +186,10 @@ ActiveRecord::Schema.define(version: 2022_03_03_092208) do
|
||||||
t.integer "granblue_id"
|
t.integer "granblue_id"
|
||||||
t.datetime "created_at", precision: 6, null: false
|
t.datetime "created_at", precision: 6, null: false
|
||||||
t.datetime "updated_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
|
end
|
||||||
|
|
||||||
create_table "weapon_keys", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
create_table "weapon_keys", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue