Class RequestService

java.lang.Object
org.qubership.atp.itf.lite.backend.service.CrudService<Request>
org.qubership.atp.itf.lite.backend.service.RequestService
All Implemented Interfaces:
EntityHistoryService<Request>, IdentifiedService

@Service public class RequestService extends CrudService<Request> implements EntityHistoryService<Request>
  • Constructor Details

    • RequestService

      public RequestService()
  • Method Details

    • repository

      protected org.springframework.data.jpa.repository.JpaRepository<Request,UUID> repository()
      Specified by:
      repository in class CrudService<Request>
    • restore

      public Request restore(Request entity)
      Specified by:
      restore in interface EntityHistoryService<Request>
    • save

      public Request save(Request request)
      Save request (and update folder children).
      Overrides:
      save in class CrudService<Request>
      Parameters:
      request - request to save
      Returns:
      save request
    • getRequest

      public Request getRequest(UUID requestId)
      Get request by specified identifier.
      Parameters:
      requestId - request identifier
      Returns:
      request
    • getRequest

      public Request getRequest(UUID requestId, UUID projectId)
      Get request by specified identifier.
      Parameters:
      requestId - request identifier
      projectId - project ID
      Returns:
      request
    • generateAuthorizationHeader

      @Nullable public RequestHeader generateAuthorizationHeader(@Nullable RequestAuthorization authorization)
      Generate Authorization header by authorization type.
      Parameters:
      authorization - authorization
      Returns:
      authorization header
    • generateAuthorizationParams

      @Nullable public List<RequestParam> generateAuthorizationParams(RequestAuthorization authorization)
      Generate Authorization params by authorization type.
      Parameters:
      authorization - authorization
      Returns:
      authorization params
    • getSettings

      public Settings getSettings(UUID requestId)
      Get request settings by specified identifier.
      Parameters:
      requestId - request identifier
      Returns:
      settings
    • getPermissionFolderIdsByRequestIds

      public Set<UUID> getPermissionFolderIdsByRequestIds(Set<UUID> requestIds)
      Collects set of permission ids from requests. Need for PreAuthorize checks
      Parameters:
      requestIds - set of request ids
      Returns:
      set of permission folder ids
    • getPermissionFolderIdsByIdsWithModifiedWhen

      public Set<UUID> getPermissionFolderIdsByIdsWithModifiedWhen(Set<IdWithModifiedWhen> requestIds)
      Collects set of permission ids from requests. Need for PreAuthorize checks
      Parameters:
      requestIds - set of request ids
      Returns:
      set of permission folder ids
    • isRequestExists

      public boolean isRequestExists(UUID requestId)
      Check that request exists.
      Parameters:
      requestId - request identifier
      Returns:
      true or exception
    • getRequestBinaryFile

      public void getRequestBinaryFile(UUID requestId, javax.servlet.http.HttpServletResponse response) throws IOException
      Get binary file from cache or gridfs by request id.
      Parameters:
      requestId - request id.
      response - http servlet for send response.
      Throws:
      IOException
    • getFile

      public void getFile(UUID requestId, UUID fileId, javax.servlet.http.HttpServletResponse response) throws IOException
      Get file from cache or gridfs by file id.
      Parameters:
      requestId - request id.
      fileId - file id.
      response - http servlet for send response.
      Throws:
      IOException
    • writeResponseAsFile

      public void writeResponseAsFile(UUID requestId, UUID executionId, javax.servlet.http.HttpServletResponse response) throws IOException
      Get response as file.
      Parameters:
      requestId - request id.
      executionId - execution id.
      response - http servlet for send response.
      Throws:
      IOException
    • uploadBinaryFile

      public void uploadBinaryFile(UUID requestId, org.springframework.web.multipart.MultipartFile file)
      Upload binary file to cache and gridfs by request id.
      Parameters:
      requestId - request id.
      file - file for upload.
    • getRequestByProjectIdAndRequestId

      public Request getRequestByProjectIdAndRequestId(UUID projectId, UUID requestId)
      Get request by specified identifier and project id.
      Parameters:
      requestId - request identifier
      Returns:
      request
    • getAllRequests

      public Collection<Request> getAllRequests(UUID projectId, UUID folderId)
      Get all requests specified by project.
      Parameters:
      projectId - project identifier
      Returns:
      collection of requests
    • getAllRequestsByProjectIdFolderIdsRequestIds

      public List<Request> getAllRequestsByProjectIdFolderIdsRequestIds(UUID projectId, Set<UUID> folderIds, Set<UUID> requestIds)
      Gets collection of requests by projectId, folderIds and requestIds.
      Parameters:
      projectId - project id
      folderIds - folder ids
      requestIds - request ids
      Returns:
      collection of requests
    • createRequest

      public Request createRequest(RequestEntityCreateRequest requestCreationRequest)
      Create request.
      Parameters:
      requestCreationRequest - creation request
      Returns:
      created request
    • createRequest

      public Request createRequest(Request request)
      Create request.
    • createRequests

      public List<Request> createRequests(List<Request> requests)
      Create requests.
    • saveRequest

      public Request saveRequest(UUID requestId, RequestEntitySaveRequest requestEntitySaveRequest, List<org.springframework.web.multipart.MultipartFile> files, Optional<FileBody> fileInfo)
      Save request.
      Parameters:
      requestId - request id
      requestEntitySaveRequest - request data
      fileInfo - info about file
      Returns:
      updated request
    • retainFormData

      public void retainFormData(RequestBody body, RequestBody bodyToSave, UUID id, boolean isSnapshot)
      Removes files what not used in request now.
    • checkFilesSize

      public void checkFilesSize(List<org.springframework.web.multipart.MultipartFile> files)
      Check files size.
      Throws:
      ItfLiteMaxFileException - for file with size > maxFileSize.
    • prepareFormDataRequest

      public List<UUID> prepareFormDataRequest(RequestBody requestBody, List<org.springframework.web.multipart.MultipartFile> files, UUID id, boolean isSnapshotFile)
      Remove old formDta files, add new files and set file UUIDs.
    • editRequest

      public Request editRequest(UUID requestId, RequestEntityEditRequest requestEntityCreateRequest)
      Edit request. Request name will be updated.
      Parameters:
      requestId - request id
      requestEntityCreateRequest - request data
      Returns:
      edited request
    • copyRequest

      public Request copyRequest(UUID requestId, RequestEntityCopyRequest requestEntityCopyRequest)
      Copy request to different folder.
      Parameters:
      requestEntityCopyRequest - request copy data
      Returns:
      new request copied from request with provided id
    • copyRequests

      @Transactional public void copyRequests(RequestEntitiesCopyRequest requestEntitiesCopyRequest)
      Copy set of requests to different folder.
      Parameters:
      requestEntitiesCopyRequest - request copy data
    • copyDictionary

      public UUID copyDictionary(UUID fromRequestId, UUID toRequestId)
      Copying diameter request dictionary if exists.
      Parameters:
      fromRequestId - source request id
      toRequestId - target request id
    • moveRequest

      public Request moveRequest(UUID requestId, RequestEntityMoveRequest requestEntityMoveRequest)
      Move request to different folder.
      Parameters:
      requestEntityMoveRequest - request copy data
      Returns:
      updated request
    • moveRequests

      @Transactional public void moveRequests(RequestEntitiesMoveRequest requestEntityMoveRequest)
      Move requests to different folder.
      Parameters:
      requestEntityMoveRequest - request copy data
    • deleteRequest

      @Transactional public void deleteRequest(UUID requestId)
      Delete request.
      Parameters:
      requestId - request id
    • bulkDeleteRequests

      @Transactional public void bulkDeleteRequests(RequestEntitiesBulkDelete requestEntitiesBulkDelete)
      Delete requests.
      Parameters:
      requestEntitiesBulkDelete - request with ids
    • addPostfixIfNameIsTaken

      public void addPostfixIfNameIsTaken(List<Request> folderRequests, Request request)
      Add postfix "Copy" if request with the same name already exists in folder.
      Parameters:
      folderRequests - list of requests under folder
      request - request
    • exportRequest

      public String exportRequest(UUID requestId, UUID environmentId, String context, List<ContextVariable> contextVariables) throws URISyntaxException
      Export request to cURL format.
      Parameters:
      requestId - request id
      Returns:
      StringBuilder with cURL format request
      Throws:
      URISyntaxException
    • importRequest

      public Request importRequest(CurlStringImportRequest importRequest)
      Import cURL string to Request.
      Parameters:
      importRequest - import request with requestId and curl string
      Returns:
      Request
    • executeRequestWithRamAdapterLogging

      public ExecuteStepResponse executeRequestWithRamAdapterLogging(ExecutionCollectionRequestExecuteRequest requestExecuteRequest, Request request, UUID environmentId)
      Execute request with RAM Adapter logging.
      Parameters:
      request - request
    • executeRequest

      public RequestExecutionResponse executeRequest(RequestEntitySaveRequest request, String context, String token, UUID sseId, Optional<org.springframework.web.multipart.MultipartFile> file, UUID environmentId, List<FileData> fileDataList) throws Exception
      Executing a request with saving the execution history.
      Parameters:
      request - request
      Returns:
      request execution response
      Throws:
      Exception
    • executeRequest

      public RequestExecutionResponse executeRequest(RequestEntitySaveRequest request, String context, String token, UUID sseId, Optional<org.springframework.web.multipart.MultipartFile> file, UUID environmentId, List<FileData> fileDataList, RequestRuntimeOptions runtimeOptions) throws Exception
      Executing a request with saving the execution history.
      Parameters:
      request - request
      Returns:
      request execution response
      Throws:
      Exception
    • executeHttpRequest

      public RequestExecutionResponse executeHttpRequest(UUID projectId, HttpRequestEntitySaveRequest httpRequest, String context, Optional<org.springframework.web.multipart.MultipartFile> binaryFile, SaveRequestResolvingContext resolvingContext, List<FileData> fileNameStreamMap, RequestRuntimeOptions runtimeOptions) throws Exception
      Execute http request.
      Parameters:
      httpRequest - httpRequest
      Returns:
      request execution response
      Throws:
      Exception
    • saveFileToFileSystemAndGridFs

      public Optional<FileBody> saveFileToFileSystemAndGridFs(UUID requestId, org.springframework.web.multipart.MultipartFile file, TransportType transportType) throws IOException
      Saves multipart file to file system and grid fs.
      Parameters:
      requestId - diameter request id
      file - multipart file dictionary or binary
      Throws:
      IOException - could be during file system operations
    • processVelocity

      public String processVelocity(UUID projectId, String content, String context) throws URISyntaxException
      Substitutes parameters values from ITF if ITF feign client is enabled.
      Parameters:
      content - string with itf variables
      context - context
      Returns:
      Processed string with variables values
      Throws:
      URISyntaxException
    • getContext

      public String getContext(UUID projectId, String context) throws URISyntaxException
      Get ITF context by itf feign client.
      Parameters:
      context - request string
      Returns:
      context
      Throws:
      URISyntaxException
    • resolveAllVariables

      public HttpRequest resolveAllVariables(HttpRequest httpRequest, String context, Boolean isVelocityResolveRequired, UUID environmentId) throws URISyntaxException, org.qubership.atp.crypt.exception.AtpDecryptException
      Resolve variables in http request.
      Parameters:
      httpRequest - http request
      context - itf context
      Returns:
      http request with resolved variables
      Throws:
      URISyntaxException
      org.qubership.atp.crypt.exception.AtpDecryptException
    • resolveVelocityVariables

      public void resolveVelocityVariables(HttpRequest httpRequest, String context, Boolean isVelocityResolveRequired, HttpRequestEntitySaveRequest saveRequest) throws URISyntaxException
      Resolve Velocity variables.
      Parameters:
      httpRequest - http request
      context - execution context
      isVelocityResolveRequired - velocity resolve flag
      saveRequest - save request
      Throws:
      URISyntaxException - possible exception
    • updateHeadersFields

      public void updateHeadersFields(List<RequestHeader> entities)
      Remove special symbols from headers entities names.
      Parameters:
      entities - list of entities
    • updateParametersFields

      public void updateParametersFields(List<RequestParam> entities)
      Remove special symbols from parameter entities names.
      Parameters:
      entities - list of entities
    • setOrder

      public void setOrder(Request request)
      Calculate and set order for the request.
    • order

      public void order(UUID requestId, RequestOrderChangeRequest request)
      Change request order.
    • updateSaveRequestHeadersFields

      public void updateSaveRequestHeadersFields(List<HttpHeaderSaveRequest> entities)
      Remove special symbols from headers entities names.
      Parameters:
      entities - list of entities
    • updateSaveRequestParametersFields

      public void updateSaveRequestParametersFields(List<HttpParamSaveRequest> entities)
      Remove special symbols from parameter entities names.
      Parameters:
      entities - list of entities
    • getByProjectIdAndSourceId

      public Request getByProjectIdAndSourceId(UUID projectId, UUID sourceId)
    • encodeRequestParametersExceptEnv

      public void encodeRequestParametersExceptEnv(List<RequestParam> parameters)
      Encode request parameters except environments.
      Parameters:
      parameters - request parameters that must be encoded
    • retrieveRuntimeOptions

      public RequestRuntimeOptions retrieveRuntimeOptions(UUID requestId)
      Retrieve options by requestId.
      Parameters:
      requestId - request id
      Returns:
      request options