Sha256: 7175e663bc8ace79c8ad5a461d38f2096147bb63ea9c0a2e28730f412472dba0

Contents?: true

Size: 1.32 KB

Versions: 2

Compression:

Stored size: 1.32 KB

Contents

module Mutations
  module UserManager
    class SignInUser < BaseMutation
      field :status, String, null: false
      field :token, String, null: true
      field :user_role, String, null: true
      field :username, String, null: true
      argument :token, String, required: false

      def resolve(token:)
        fb_auth(token: token)
        begin
          user = ::User.find_by_uid(@payload["sub"])
          user.update(icon_url: @payload["picture"], username: @payload["name"])
          token_base = JsonWebToken.encode(user_id: user.id)
          {
            status: "ログイン成功!",
            username: user.username,
            token: token_base
          }
        rescue StandardError
          user =
            ::User.new(
              uid: @payload["sub"],
              email: @payload["email"],
              icon_url: @payload["picture"],
              username: @payload["name"],
              user_role: 4
            )
          if user.save
            token = JsonWebToken.encode(user_id: user.id)
            {
              status: "ユーザー新規登録完了!",
              username: user.username,
              token: token,
              user_role: user.user_role
            }
          else
            { status: user.errors.full_messages }
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
souls-0.22.8 hoy/app/graphql/mutations/user_manager/sign_in_user.rb
souls-0.22.7 hoy/app/graphql/mutations/user_manager/sign_in_user.rb