Merge pull request #7 from jedmund/account-settings

Added support for account settings
This commit is contained in:
Justin Edmund 2022-03-04 05:33:24 -08:00 committed by GitHub
commit 376c286a77
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 64 additions and 8 deletions

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,3 @@
object @user
extends 'api/v1/users/base'

View file

@ -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'

View 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

View 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

View 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

View file

@ -0,0 +1,5 @@
class AddElementToUser < ActiveRecord::Migration[6.1]
def change
add_column :users, :element, :string, :default => "water", :null => false
end
end

View file

@ -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|