Search in sources :

Example 1 with Tag

use of io.gravitee.repository.management.model.Tag in project gravitee-management-rest-api by gravitee-io.

the class TagServiceImpl method create.

@Override
public List<TagEntity> create(final List<NewTagEntity> tagEntities) {
    // First we prevent the duplicate tag name
    final List<String> tagNames = tagEntities.stream().map(NewTagEntity::getName).collect(Collectors.toList());
    final Optional<TagEntity> optionalTag = findAll().stream().filter(tag -> tagNames.contains(tag.getName())).findAny();
    if (optionalTag.isPresent()) {
        throw new DuplicateTagNameException(optionalTag.get().getName());
    }
    final List<TagEntity> savedTags = new ArrayList<>(tagEntities.size());
    tagEntities.forEach(tagEntity -> {
        try {
            Tag tag = convert(tagEntity);
            savedTags.add(convert(tagRepository.create(tag)));
            auditService.createPortalAuditLog(Collections.singletonMap(TAG, tag.getId()), TAG_CREATED, new Date(), null, tag);
        } catch (TechnicalException ex) {
            LOGGER.error("An error occurs while trying to create tag {}", tagEntity.getName(), ex);
            throw new TechnicalManagementException("An error occurs while trying to create tag " + tagEntity.getName(), ex);
        }
    });
    return savedTags;
}
Also used : java.util(java.util) Logger(org.slf4j.Logger) NewTagEntity(io.gravitee.management.model.NewTagEntity) ApiService(io.gravitee.management.service.ApiService) TechnicalException(io.gravitee.repository.exceptions.TechnicalException) LoggerFactory(org.slf4j.LoggerFactory) TechnicalManagementException(io.gravitee.management.service.exceptions.TechnicalManagementException) Autowired(org.springframework.beans.factory.annotation.Autowired) AuditService(io.gravitee.management.service.AuditService) TagEntity(io.gravitee.management.model.TagEntity) Collectors(java.util.stream.Collectors) AuditEvent(io.gravitee.repository.management.model.Tag.AuditEvent) TagRepository(io.gravitee.repository.management.api.TagRepository) IdGenerator(io.gravitee.common.utils.IdGenerator) Tag(io.gravitee.repository.management.model.Tag) Component(org.springframework.stereotype.Component) TagService(io.gravitee.management.service.TagService) DuplicateTagNameException(io.gravitee.management.service.exceptions.DuplicateTagNameException) UpdateTagEntity(io.gravitee.management.model.UpdateTagEntity) TAG(io.gravitee.repository.management.model.Audit.AuditProperties.TAG) TechnicalException(io.gravitee.repository.exceptions.TechnicalException) NewTagEntity(io.gravitee.management.model.NewTagEntity) TagEntity(io.gravitee.management.model.TagEntity) UpdateTagEntity(io.gravitee.management.model.UpdateTagEntity) DuplicateTagNameException(io.gravitee.management.service.exceptions.DuplicateTagNameException) Tag(io.gravitee.repository.management.model.Tag) TechnicalManagementException(io.gravitee.management.service.exceptions.TechnicalManagementException)

Example 2 with Tag

use of io.gravitee.repository.management.model.Tag in project gravitee-management-rest-api by gravitee-io.

the class TagServiceImpl method convert.

private Tag convert(final UpdateTagEntity tagEntity) {
    final Tag tag = new Tag();
    tag.setId(tagEntity.getId());
    tag.setName(tagEntity.getName());
    tag.setDescription(tagEntity.getDescription());
    return tag;
}
Also used : Tag(io.gravitee.repository.management.model.Tag)

Example 3 with Tag

use of io.gravitee.repository.management.model.Tag in project gravitee-management-rest-api by gravitee-io.

the class TagServiceImpl method convert.

private Tag convert(final NewTagEntity tagEntity) {
    final Tag tag = new Tag();
    tag.setId(IdGenerator.generate(tagEntity.getName()));
    tag.setName(tagEntity.getName());
    tag.setDescription(tagEntity.getDescription());
    return tag;
}
Also used : Tag(io.gravitee.repository.management.model.Tag)

Example 4 with Tag

use of io.gravitee.repository.management.model.Tag in project gravitee-management-rest-api by gravitee-io.

the class TagServiceImpl method delete.

@Override
public void delete(final String tagId) {
    try {
        Optional<Tag> tagOptional = tagRepository.findById(tagId);
        if (tagOptional.isPresent()) {
            tagRepository.delete(tagId);
            // delete all reference on APIs
            apiService.deleteTagFromAPIs(tagId);
            auditService.createPortalAuditLog(Collections.singletonMap(TAG, tagId), TAG_DELETED, new Date(), null, tagOptional.get());
        }
    } catch (TechnicalException ex) {
        LOGGER.error("An error occurs while trying to delete tag {}", tagId, ex);
        throw new TechnicalManagementException("An error occurs while trying to delete tag " + tagId, ex);
    }
}
Also used : TechnicalException(io.gravitee.repository.exceptions.TechnicalException) Tag(io.gravitee.repository.management.model.Tag) TechnicalManagementException(io.gravitee.management.service.exceptions.TechnicalManagementException)

Example 5 with Tag

use of io.gravitee.repository.management.model.Tag in project gravitee-management-rest-api by gravitee-io.

the class TagServiceImpl method update.

@Override
public List<TagEntity> update(final List<UpdateTagEntity> tagEntities) {
    final List<TagEntity> savedTags = new ArrayList<>(tagEntities.size());
    tagEntities.forEach(tagEntity -> {
        try {
            Tag tag = convert(tagEntity);
            Optional<Tag> tagOptional = tagRepository.findById(tag.getId());
            if (tagOptional.isPresent()) {
                savedTags.add(convert(tagRepository.update(tag)));
                auditService.createPortalAuditLog(Collections.singletonMap(TAG, tag.getId()), TAG_UPDATED, new Date(), tagOptional.get(), tag);
            }
        } catch (TechnicalException ex) {
            LOGGER.error("An error occurs while trying to update tag {}", tagEntity.getName(), ex);
            throw new TechnicalManagementException("An error occurs while trying to update tag " + tagEntity.getName(), ex);
        }
    });
    return savedTags;
}
Also used : TechnicalException(io.gravitee.repository.exceptions.TechnicalException) NewTagEntity(io.gravitee.management.model.NewTagEntity) TagEntity(io.gravitee.management.model.TagEntity) UpdateTagEntity(io.gravitee.management.model.UpdateTagEntity) Tag(io.gravitee.repository.management.model.Tag) TechnicalManagementException(io.gravitee.management.service.exceptions.TechnicalManagementException)

Aggregations

Tag (io.gravitee.repository.management.model.Tag)5 TechnicalManagementException (io.gravitee.management.service.exceptions.TechnicalManagementException)3 TechnicalException (io.gravitee.repository.exceptions.TechnicalException)3 NewTagEntity (io.gravitee.management.model.NewTagEntity)2 TagEntity (io.gravitee.management.model.TagEntity)2 UpdateTagEntity (io.gravitee.management.model.UpdateTagEntity)2 IdGenerator (io.gravitee.common.utils.IdGenerator)1 ApiService (io.gravitee.management.service.ApiService)1 AuditService (io.gravitee.management.service.AuditService)1 TagService (io.gravitee.management.service.TagService)1 DuplicateTagNameException (io.gravitee.management.service.exceptions.DuplicateTagNameException)1 TagRepository (io.gravitee.repository.management.api.TagRepository)1 TAG (io.gravitee.repository.management.model.Audit.AuditProperties.TAG)1 AuditEvent (io.gravitee.repository.management.model.Tag.AuditEvent)1 java.util (java.util)1 Collectors (java.util.stream.Collectors)1 Logger (org.slf4j.Logger)1 LoggerFactory (org.slf4j.LoggerFactory)1 Autowired (org.springframework.beans.factory.annotation.Autowired)1 Component (org.springframework.stereotype.Component)1