Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Add user info end point
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Eng committed Sep 29, 2014
1 parent 120eb90 commit 6f78455
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 1 deletion.
63 changes: 63 additions & 0 deletions zanata-war/src/main/java/org/zanata/rest/service/UserService.java
@@ -0,0 +1,63 @@
package org.zanata.rest.service;

import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.GenericEntity;
import javax.ws.rs.core.Response;

import org.jboss.resteasy.util.GenericType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.security.management.JpaIdentityStore;
import org.zanata.dao.AccountDAO;
import org.zanata.model.HAccount;
import org.zanata.model.HPerson;
import org.zanata.rest.dto.Locale;
import org.zanata.rest.dto.TransUnitStatus;
import org.zanata.rest.dto.User;
import org.zanata.rest.dto.VersionInfo;
import org.zanata.service.GravatarService;
import org.zanata.util.VersionUtility;

import org.zanata.rest.service.UserResource;

import java.lang.reflect.Type;
import java.util.List;

@Name("userService")
@Path(UserResource.SERVICE_PATH)
public class UserService implements UserResource {

@In(value = JpaIdentityStore.AUTHENTICATED_USER)
private HAccount authenticatedAccount;

@In
private GravatarService gravatarServiceImpl;

@In
private AccountDAO accountDAO;

@Override
public Response getMyInfo() {
return createUser(authenticatedAccount);
}

@Override
public Response getUserInfo(String username) {
HAccount account = accountDAO.getByUsername(username);
return createUser(account);
}

private Response createUser(HAccount account) {
if (account == null) {
return Response.status(Response.Status.NOT_FOUND).build();
}

HPerson person = account.getPerson();
User user =
new User(account.getUsername(), person.getEmail(),
person.getName(),
gravatarServiceImpl.getGravatarHash(person.getEmail()));
return Response.ok(user).build();
}
}
Expand Up @@ -4,4 +4,6 @@ public interface GravatarService {
String getUserImageUrl(int size);

String getUserImageUrl(int size, String email);

String getGravatarHash(String email);
}
Expand Up @@ -31,10 +31,15 @@ public String getUserImageUrl(int size) {
@Override
public String getUserImageUrl(int size, String email) {
StringBuilder url = new StringBuilder(GRAVATAR_URL);
url.append(HashUtil.md5Hex(email.toLowerCase().trim()));
url.append(getGravatarHash(email));
url.append("?d=mm&r=g&s="); // d = default image, r = rating, s = size
url.append(size);
return url.toString();
}

@Override
public String getGravatarHash(String email) {
return HashUtil.md5Hex(email.toLowerCase().trim());
}

}

0 comments on commit 6f78455

Please sign in to comment.