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

org.johnnei.enjin.spec.impl.UserAdminImpl Maven / Gradle / Ivy

The newest version!
package org.johnnei.enjin.spec.impl;

import java.lang.reflect.Type;
import java.util.Collection;
import java.util.Objects;
import java.util.Optional;

import org.johnnei.enjin.internal.AnnotationUtils;
import org.johnnei.enjin.internal.RequestWrapper;
import org.johnnei.enjin.internal.ResponseWrapper;
import org.johnnei.enjin.internal.http.IRequestExecuter;
import org.johnnei.enjin.spec.EnjinMethod;
import org.johnnei.enjin.spec.IUserAdmin;
import org.johnnei.enjin.spec.dto.Tag;
import org.johnnei.enjin.spec.dto.User;
import org.johnnei.enjin.spec.dto.UserTagsRequest;

import com.google.gson.reflect.TypeToken;

public class UserAdminImpl implements IUserAdmin {

	private static final Type USER_TAGS_RESPONSE_TYPE = new TypeToken>>() {}.getType();

	private EnjinApiImpl enjinApiImpl;

	private IRequestExecuter requestExecuter;

	public UserAdminImpl(EnjinApiImpl enjinApiImpl, IRequestExecuter requestExecuter) {
		this.enjinApiImpl = enjinApiImpl;
		this.requestExecuter = requestExecuter;
	}

	@Override
	public Collection getUserTags(int siteId, User user) {
		Objects.requireNonNull(user);
		final EnjinMethod method = AnnotationUtils.getMethod(IUserAdmin.class, "getUserTags", int.class, User.class);

		UserTagsRequest params = new UserTagsRequest.Builder()
				.setSiteId(Integer.toString(siteId))
				.setUserId(user.getUserId())
				.build();

		RequestWrapper request = enjinApiImpl.createRequest(method, Optional.of(user), params);
		ResponseWrapper> response = requestExecuter.executeRequest(request, USER_TAGS_RESPONSE_TYPE);

		return response.getResponse();
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy