All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.cloudfoundry.multiapps.controller.persistence.services.AccessTokenService Maven / Gradle / Ivy

package org.cloudfoundry.multiapps.controller.persistence.services;

import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.persistence.EntityManagerFactory;

import org.cloudfoundry.multiapps.common.ConflictException;
import org.cloudfoundry.multiapps.common.NotFoundException;
import org.cloudfoundry.multiapps.controller.persistence.Messages;
import org.cloudfoundry.multiapps.controller.persistence.dto.AccessTokenDto;
import org.cloudfoundry.multiapps.controller.persistence.model.AccessToken;
import org.cloudfoundry.multiapps.controller.persistence.model.ImmutableAccessToken;
import org.cloudfoundry.multiapps.controller.persistence.query.AccessTokenQuery;
import org.cloudfoundry.multiapps.controller.persistence.query.impl.AccessTokenQueryImpl;

@Named
public class AccessTokenService extends PersistenceService {

    private final AccessTokenMapper accessTokenMapper;

    @Inject
    public AccessTokenService(EntityManagerFactory entityManagerFactory, AccessTokenMapper accessTokenMapper) {
        super(entityManagerFactory);
        this.accessTokenMapper = accessTokenMapper;
    }

    public AccessTokenQuery createQuery() {
        return new AccessTokenQueryImpl(createEntityManager(), accessTokenMapper);
    }

    @Override
    protected PersistenceObjectMapper getPersistenceObjectMapper() {
        return accessTokenMapper;
    }

    @Override
    protected void onEntityConflict(AccessTokenDto dto, Throwable t) {
        throw new ConflictException(t, Messages.ACCESS_TOKEN_ALREADY_EXISTS, dto.getPrimaryKey());
    }

    @Override
    protected void onEntityNotFound(Long primaryKey) {
        throw new NotFoundException(Messages.ACCESS_TOKEN_NOT_FOUND, primaryKey);
    }

    @Named
    public static class AccessTokenMapper implements PersistenceObjectMapper {

        @Override
        public AccessToken fromDto(AccessTokenDto accessTokenDto) {
            return ImmutableAccessToken.builder()
                                       .id(accessTokenDto.getPrimaryKey())
                                       .value(accessTokenDto.getValue())
                                       .username(accessTokenDto.getUsername())
                                       .expiresAt(accessTokenDto.getExpiresAt())
                                       .build();
        }

        @Override
        public AccessTokenDto toDto(AccessToken accessToken) {
            return new AccessTokenDto(accessToken.getId(), accessToken.getValue(), accessToken.getUsername(), accessToken.getExpiresAt());
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy