# shellcheck shell=dash

___x_cmd_gx_ws_pr(){
    local X_help_cmd='___x_cmd_gx_help ws pr'
    help:arg:parse
    [ $# -gt 0 ] ||     set -- ls

    local op="$1";      shift
    case "$op" in
        ls|create|edit|merge)               ___x_cmd_gx_ws___pr  "$op"  "$@" ;;
        open)                               ___x_cmd_gx_ws_pr_open           ;;
    esac
}

___x_cmd_gx_ws___pr(){
    local op="$1"; shift

    local x_
    ___x_cmd_gx_ws_provider_ || return
    local provider="$x_"

    ___x_cmd_gx_ws_repopath_ || return
    local p="$x_"

    gx:debug "x $provider repo pr  $op -r $p $*"
    x "$provider" repo pr  "$op" -r "$p" "$@"
}

___x_cmd_gx_ws_pr_open(){
    local x_
    ___x_cmd_gx_ws_gethttpurl_ || return
    local httpurl="$x_"

    ___x_cmd_gx_ws_repopath_ || return
    local p="$x_"

    ___x_cmd_gx_ws_provider_ || return
    local provider="$x_"

    case "$provider" in
        gh|gt)         x browse "$httpurl/$p/pr"                ;;
        gitcode|gl)    x browse "$httpurl/$p/-/merge_requests"  ;;
        *)             return 1                              ;;
    esac
}

