123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- using AipGateway.AIP;
- using AipGateway.API.Application;
- using AipGateway.API.Application.Utils;
- using AipGateway.API.Domain.Entities;
- using AipGateway.API.Domain.Exceptions;
- using AipGateway.API.Domain.Models.Response;
- using AipGateway.API.Services;
- using AipGateway.API.Utils;
- using Microsoft.AspNetCore.Mvc;
- namespace AipGateway.API.Controllers
- {
- public class BaseController : ControllerBase
- {
- protected async Task<IResult> CreateResponseAsync(Func<Task<IResult>> function)
- {
- IResult response;
- try
- {
- response = await function.Invoke();
- }
- catch (ApiException aipEx)
- {
- response = Results.BadRequest(new ApiResponseModel<ApiException>
- {
- success = false,
- errorCode = aipEx.errorCode,
- errorMessage = aipEx.errorMessage,
- result = null,
- });
- }
- catch (AipFileException aipFileEx)
- {
- HttpContext.Items[GlobalConstants.API_RESULT_CODE] = aipFileEx.ErrorCode;
- HttpContext.Items[GlobalConstants.API_RESULT_MESSAGE] = aipFileEx.Message;
- response = Results.BadRequest(new ApiResponseModel<AipFileException>
- {
- success = false,
- errorCode = aipFileEx.ErrorCode,
- errorMessage = aipFileEx.Message,
- result = null,
- });
- }
- catch (Exception ex)
- {
- HttpContext.Items[GlobalConstants.API_RESULT_CODE] = 500;
- HttpContext.Items[GlobalConstants.API_RESULT_MESSAGE] = ex.InnerException?.Message ?? ex.Message;
- response = Results.BadRequest(new ApiResponseModel<Exception>
- {
- success = false,
- errorCode = 500,
- errorMessage = ex.InnerException?.Message ?? ex.Message,
- result = null,
- });
- //response = Results.Problem(new ProblemDetails()
- //{
- // Status = 500, // 내부오류
- // Title = ex.InnerException?.Message ?? ex.Message,
- // Detail = ex.InnerException?.Message,
- // Instance = ex.HResult.ToString(),
- // Type = ex.HResult.ToString(),
- //});
- }
- return response;
- }
- protected ApiException ResponseApiKeyValidationError(HttpContext httpContext, int errorNo)
- {
- string errorMessage;
- switch (errorNo)
- {
- case 0: errorMessage = GlobalConstants.API_RESULT_SUCCESS; break;
- case 1: errorMessage = "등록되어 있지 않은 API KEY 입니다."; break;
- case 2: errorMessage = "등록되어 있지 않은 IP Address에서 호출된 API KEY 입니다."; break;
- case 3: errorMessage = "API KEY 유효기간이 지났습니다."; break;
- case 4: errorMessage = "API 사용 권한이 없습니다."; break;
- default: errorMessage = errorNo + ", API KEY 유효성 검사 중 알수 없는 오류가 발생하였습니다."; break;
- }
- httpContext.Items[GlobalConstants.API_RESULT_CODE] = errorNo;
- httpContext.Items[GlobalConstants.API_RESULT_MESSAGE] = errorMessage;
- return new ApiException(errorNo, errorMessage);
- }
- protected ApiResponseModel<GeneralResponse> ResponseSuccess(HttpContext context, GeneralResponse response)
- {
- //context.Items.Add(GlobalConstants.API_RESULT, (ResponseBase)response);
- context.Items[GlobalConstants.API_RESULT_CODE] = response.errorCode;
- context.Items[GlobalConstants.API_RESULT_MESSAGE] = response.errorCode == 0 ? GlobalConstants.API_RESULT_SUCCESS : response.errorMessage;
- return new ApiResponseModel<GeneralResponse>()
- {
- success = response.errorCode == 0 ? true : false,
- errorCode = response.errorCode,
- errorMessage = response.errorCode == 0 ? GlobalConstants.API_RESULT_SUCCESS : response.errorMessage,
- result = response,
- };
- }
- protected ApiResponseModel<ResponseInfo> ResponseSuccess(HttpContext context, ResponseInfo response)
- {
- context.Items[GlobalConstants.API_RESULT_CODE] = response.errorCode;
- context.Items[GlobalConstants.API_RESULT_MESSAGE] = response.errorCode == 0 ? GlobalConstants.API_RESULT_SUCCESS : response.errorMessage;
- context.Items.Add(GlobalConstants.API_RESULT, (ResponseBase)response);
- return new ApiResponseModel<ResponseInfo>()
- {
- success = response.errorCode == 0 ? true : false,
- errorCode = response.errorCode,
- errorMessage = response.errorCode == 0 ? GlobalConstants.API_RESULT_SUCCESS : response.errorMessage,
- result = response,
- };
- }
- protected ApiResponseModel<ResponseFile> ResponseSuccess(HttpContext context, ResponseFile response)
- {
- context.Items[GlobalConstants.API_RESULT_CODE] = response.errorCode;
- context.Items[GlobalConstants.API_RESULT_MESSAGE] = response.errorCode == 0 ? GlobalConstants.API_RESULT_SUCCESS : response.errorMessage;
- context.Items.Add(GlobalConstants.API_RESULT, (ResponseBase)response);
- return new ApiResponseModel<ResponseFile>()
- {
- success = response.errorCode == 0 ? true : false,
- errorCode = response.errorCode,
- errorMessage = response.errorCode == 0 ? GlobalConstants.API_RESULT_SUCCESS : response.errorMessage,
- result = response,
- };
- }
- protected ApiResponseModel<ResponseStream> ResponseSuccess(HttpContext context, ResponseStream response)
- {
- context.Items[GlobalConstants.API_RESULT_CODE] = response.errorCode;
- context.Items[GlobalConstants.API_RESULT_MESSAGE] = response.errorCode == 0 ? GlobalConstants.API_RESULT_SUCCESS : response.errorMessage;
- context.Items.Add(GlobalConstants.API_RESULT, (ResponseBase)response);
- return new ApiResponseModel<ResponseStream>()
- {
- success = response.errorCode == 0 ? true : false,
- errorCode = response.errorCode,
- errorMessage = response.errorCode == 0 ? GlobalConstants.API_RESULT_SUCCESS : response.errorMessage,
- result = response,
- };
- }
- }
- }
|