<?php

namespace App\Utils;

class Response
{
    const OK = 0;


    const PARAM_ERROR = 40010;

    const BAD_REQUEST  = 50000;
    const SERVER_ERROR = 50010;
    const SQL_ERROR    = 50020;
    const FORBIDDEN    = 50030;


    public static $errMsg = [
        self::OK           => 'success',
        self::BAD_REQUEST  => '请求错误',
        self::PARAM_ERROR  => '参数错误',
        self::SQL_ERROR    => '数据库执行错误',
        self::SERVER_ERROR => 'Error',
    ];

    public static function response(array $params = [])
    {
        $data = $params['data'] ?? [];
        if (env('APP_DEBUG') && array_key_exists('e', $params) && $params['e'] instanceof \Exception) {
            $code = $params['e']->getCode();
            $msg  = $params['e']->getMessage();
        } else {
            $code = $params['code'] ?? 0;
            $msg  = $params['msg'] ?? (array_key_exists($code, self::$errMsg) ? self::$errMsg[$code] : '未知错误');
        }

        return response(['code' => $code, 'msg' => $msg, 'data' => $data]);
    }
}