<?php
namespace App\Classes;
abstract class SendResponse
{
// ------- SUCCESS RESPONSE ------
private static function generateParams($data, $paramsKeyValues)
{
if (count($paramsKeyValues) > 0) {
foreach ($paramsKeyValues as $key => $value) {
$data[$key] = $value;
}
}
return $data;
}
private static function getData($msgType, $msgPos, $msgPT, $msgEN)
{
$data = [
'code' => trans($msgType)[$msgPos]['cody'],
$msgType => trans($msgType)[$msgPos][$msgType],
'type' => trans($msgType)[$msgPos]['type'],
'message' => $msgPT,
'messageLang' => [
'pt' => $msgPT,
'en' => $msgEN,
]
];
return $data;
}
// public static function successResp200($msgPT = 'Transação bem sucedida', $msgEN = 'Transaction Successfully', $paramsKeyValues = array())
// {
// $data = SendResponse::getData('success', 0, $msgPT, $msgEN);
// $data = SendResponse::generateParams($data, $paramsKeyValues);
// return response()->json($data, trans('success')[0]['http_code']);
// }
public static function successResp200($msgPT = 'Transação bem sucedida', $msgEN = 'Transaction Successfully', $paramsKeyValues = array())
{
// Gera a resposta base com as mensagens padrão
$data = SendResponse::getData('success', 0, $msgPT, $msgEN);
// Adiciona os parâmetros extras como 'transaction' e 'created_at'
$data = SendResponse::generateParams($data, $paramsKeyValues);
// Inclui os dados da transação
// if (isset($paramsKeyValues['transaction']) && isset($paramsKeyValues['partner_transaction_id']) && isset($paramsKeyValues['created_at'])) {
// $data['transaction'] = $paramsKeyValues['transaction'];
// $data['partner_transaction_id'] = $paramsKeyValues['partner_transaction_id'];
// $data['created_at'] = $paramsKeyValues['created_at'];
// }
// Adiciona transaction e created_at diretamente em $data
// if (isset($paramsKeyValues['transaction'])) {
// $data['transaction'] = $paramsKeyValues['transaction'];
// }
// if (isset($paramsKeyValues['created_at'])) {
// $data['created_at'] = $paramsKeyValues['created_at'];
// }
// Retorna a resposta com código de sucesso (200)
return response()->json($data, trans('success')[0]['http_code']);
}
public static function successResp201($msgPT = 'Transação bem sucedida', $msgEN = 'Transaction Successfully', $paramsKeyValues = array())
{
$data = SendResponse::getData('success', 1, $msgPT, $msgEN);
$data = SendResponse::generateParams($data, $paramsKeyValues);
return response()->json($data, trans('success')[1]['http_code']);
}
// ------- ERROR RESPONSE ------
public static function errorResp400($msgPT = 'Parametros ou dados Invalidos', $msgEN = 'Invalid Params or Data', $paramsKeyValues = array())
{
$data = SendResponse::getData('error', 0, $msgPT, $msgEN);
$data = SendResponse::generateParams($data, $paramsKeyValues);
return response()->json($data, trans('error')[0]['http_code']);
}
public static function errorResp401unauthenticated($msgPT = 'Não auntenticado', $msgEN = 'Unauthenticated', $paramsKeyValues = array())
{
$data = SendResponse::getData('error', 1, $msgPT, $msgEN);
$data = SendResponse::generateParams($data, $paramsKeyValues);
return response()->json($data, trans('error')[1]['http_code']);
}
public static function errorResp403forbidden($msgPT = 'Acção proibida', $msgEN = 'Forbidden to perform the action', $paramsKeyValues = array())
{
$data = SendResponse::getData('error', 2, $msgPT, $msgEN);
$data = SendResponse::generateParams($data, $paramsKeyValues);
return response()->json($data, trans('error')[2]['http_code']);
}
public static function errorResp404notfound($msgPT = 'Não encontrado', $msgEN = 'Not found', $paramsKeyValues = array())
{
$data = SendResponse::getData('error', 3, $msgPT, $msgEN);
$data = SendResponse::generateParams($data, $paramsKeyValues);
return response()->json($data, trans('error')[3]['http_code']);
}
public static function errorResp408timeout($msgPT = 'Requisição expirou', $msgEN = 'Request Timeout', $paramsKeyValues = array())
{
$data = SendResponse::getData('error', 4, $msgPT, $msgEN);
$data = SendResponse::generateParams($data, $paramsKeyValues);
return response()->json($data, trans('error')[4]['http_code']);
}
public static function errorResp409conflit($msgPT = 'Duplicação de dados', $msgEN = 'Data Conflit', $paramsKeyValues = array())
{
$data = SendResponse::getData('error', 5, $msgPT, $msgEN);
$data = SendResponse::generateParams($data, $paramsKeyValues);
return response()->json($data, trans('error')[5]['http_code']);
}
public static function errorResp401unauthorized($msgPT = 'Não autorizado', $msgEN = 'Unauthorized', $paramsKeyValues = array())
{
$data = SendResponse::getData('error', 6, $msgPT, $msgEN);
$data = SendResponse::generateParams($data, $paramsKeyValues);
return response()->json($data, trans('error')[6]['http_code']);
}
public static function errorResp402rejected($msgPT = 'Transação rejeitada', $msgEN = 'Transaction Rejected', $paramsKeyValues = array())
{
$data = SendResponse::getData('error', 7, $msgPT, $msgEN);
$data = SendResponse::generateParams($data, $paramsKeyValues);
return response()->json($data, trans('error')[7]['http_code']);
}
// ------- WARNING RESPONSE ------
public static function warningResp500serverError($msgPT = 'Erro interno do servidor', $msgEN = 'Internal server error', $paramsKeyValues = array())
{
$data = SendResponse::getData('warning', 0, $msgPT, $msgEN);
$data = SendResponse::generateParams($data, $paramsKeyValues);
return response()->json($data, trans('warning')[0]['http_code']);
}
}