# shellcheck shell=bash

# https://gitea.com/api/swagger#/user/userGetCurrent
# https://gitea.com/api/swagger#/user/userGet
___x_cmd_fjo_user_info() {
    param:scope     ___x_cmd_fjo
    param:dsl       '
options:
    #1              "Username, empty is using current user"     <>=""
    --json|-j       "output json data"
'
    param:run

    local _avt_name="$1"
    local url=""
    if [ -z "$_avt_name" ]; then
        url="/user"
    else
        ___x_cmd_fjo____transform_avt_name || return
        url="/users/$_avt_name"
    fi
    ___x_cmd_fjo_curl get "$url" | ___x_cmd_fjo_user_info____status_hander
}

___x_cmd_fjo_user_info____status_hander(){
    if [ -n "$ENFORCE_JSON" ] || [ -n "$json" ]; then
        ___x_cmd_cmds_cat
        return
    fi
    (
        local _id=""
        x jo env . _id=.id name=.login email=.email website=.website followers=.followers_count \
            fjo_resp_msg=.message fjo_resp_err=.errors
        if [ -n "$_id" ]; then
            ___x_cmd_ui_tf true  "Get${_avt_name:+" $_avt_name"} user info successfully:" \
                "Id: $_id" "Name: $name" "Followers: $followers" "Email: $email" ${website:+"Website: $website"}
        else
            ___x_cmd_ui_tf false "Get${_avt_name:+" $_avt_name"} user info failure:" >&2
            ___x_cmd_fjo____handle_resp
            return 1
        fi
    )
}
