Package fr.gouv.vitam.functional.administration.core.profile

# Interface ProfileService

All Superinterfaces:
  `AutoCloseable`, `VitamAutoCloseable`

All Known Implementing Classes:
  `ProfileServiceImpl`

public interface ProfileService extends VitamAutoCloseable
This service manages the creation, update, find, ... profiles

- ## Method Summary

  Modifier and Type
  Method
  Description
  `RequestResponse<ProfileModel>`
  `createProfiles(List<CreateProfileModel> createProfileModels)`
  Create a collections of profile After passing the validation steps.
  `jakarta.ws.rs.core.Response`
  `downloadProfileFile(String profileIdentifier)`
  download file corresponding to profileIdentifier
  `ProfileModel`
  `findByIdentifier(String identifier)`
  Find profile by identifier
  `RequestResponseOK<ProfileModel>`
  `findProfiles(com.fasterxml.jackson.databind.JsonNode queryDsl)`
  find Profile by QueryDsl
  `RequestResponse<ProfileModel>`
  `importProfileFile(String profileIdentifier, InputStream profileFile)`
  1.
  `RequestResponse<ProfileModel>`
  `updateProfile(ProfileModel profileModel, com.fasterxml.jackson.databind.JsonNode jsonDsl)`
  Update profile
  `RequestResponse<ProfileModel>`
  `updateProfile(String identifier, com.fasterxml.jackson.databind.JsonNode jsonDsl)`
  Update profiles after passing validation steps : Field modified : - ActivationDate - DesactivationDate - LastUpdate - Status

  ### Methods inherited from interface fr.gouv.vitam.common.model.VitamAutoCloseable

  `close`

- ## Method Details

  - ### createProfiles

    RequestResponse<ProfileModel> createProfiles(List<CreateProfileModel> createProfileModels) throws VitamException
    Create a collections of profile After passing the validation steps. If all the profiles are valid, they are stored in the collection and indexed. The profiles are not valid in the following situations :
    - The collection contains 2 ore many profile having the same identifier
    - One or more mandatory field is missing
    - A field has an invalid format
    - One or many profile already exist in the database
    Parameters:
      `createProfileModels` - the list of profiles to be created
    Returns:
      RequestResponseOK if success or VitamError
    Throws:
      `VitamException` - if in error occurs while validating contracts

  - ### importProfileFile

    RequestResponse<ProfileModel> importProfileFile(String profileIdentifier, InputStream profileFile) throws VitamException
    1. Check that the document with given id exists else return VitamError 2. Check that the document is (xsd, rng, ...) valid format else return VitamError 3. If ok, save the file is the storage with the name (the given profile id) TODO 4. In case of rng, check if RG exists ?!
    Parameters:
      `profileIdentifier` - the profile identifier
      `profileFile` - the profile file as an input stream
    Returns:
      RequestResponseOK if success or VitamError
    Throws:
      `VitamException` - thrown if the profiles could not be imported

  - ### downloadProfileFile

    jakarta.ws.rs.core.Response downloadProfileFile(String profileIdentifier) throws ProfileNotFoundException, InvalidParseOperationException, ReferentialException
    download file corresponding to profileIdentifier
    Parameters:
      `profileIdentifier` - the profile identifier
    Returns:
      Response
    Throws:
      `ProfileNotFoundException` - thrown if the profile could not be found
      `InvalidParseOperationException` - thrown if the query could not be executed
      `ReferentialException` - thrown if the query could not be executed

  - ### updateProfile

    RequestResponse<ProfileModel> updateProfile(String identifier, com.fasterxml.jackson.databind.JsonNode jsonDsl) throws VitamException
    Update profiles after passing validation steps : Field modified :
    - - ActivationDate
    - - DesactivationDate
    - - LastUpdate
    - - Status
    Parameters:
      `identifier` - identifier of the profile to update
      `jsonDsl` - the given profile dsl for update
    Returns:
      RequestResponseOK if success or VitamError
    Throws:
      `VitamException` - if in error occurs while validating contracts

  - ### updateProfile

    RequestResponse<ProfileModel> updateProfile(ProfileModel profileModel, com.fasterxml.jackson.databind.JsonNode jsonDsl) throws VitamException
    Update profile
    Parameters:
      `profileModel` - the updated ProfileModel
      `jsonDsl` - the query as a json
    Returns:
      a response as a RequestResponse object
    Throws:
      `VitamException` - thrown if the update could not be executed

  - ### findByIdentifier

    ProfileModel findByIdentifier(String identifier) throws ReferentialException, InvalidParseOperationException
    Find profile by identifier
    Parameters:
      `identifier` - the Profile identifier
    Returns:
      ProfileModel
    Throws:
      `ReferentialException` - thrown if the query could not be executed
      `InvalidParseOperationException` - thrown if the query could not be executed

  - ### findProfiles

    RequestResponseOK<ProfileModel> findProfiles(com.fasterxml.jackson.databind.JsonNode queryDsl) throws ReferentialException, InvalidParseOperationException
    find Profile by QueryDsl
    Parameters:
      `queryDsl` - the query as a json to be executed
    Returns:
      list of ProfileModel
    Throws:
      `ReferentialException` - thrown if the query could not be executed
      `InvalidParseOperationException` - thrown if the query could not be executed