package org.karmaexchange.resources.msg;
import java.util.Collection;
import java.util.List;
import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlRootElement;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.karmaexchange.dao.Organization;
import org.karmaexchange.dao.User;
import org.karmaexchange.dao.User.OrganizationMembership;
import com.google.common.collect.Lists;
import com.googlecode.objectify.Key;
@XmlRootElement
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper=true)
@ToString(callSuper=true)
public class OrganizationMemberView extends UserSummaryInfoView {
@Nullable
private Organization.Role role;
@Nullable
private Organization.Role requestedRole;
public static List<OrganizationMemberView> create(Collection<User> usersBatch,
Key<Organization> orgKey) {
List<OrganizationMemberView> members = Lists.newArrayList();
for (User user : usersBatch) {
OrganizationMembership membership = user.tryFindOrganizationMembership(orgKey);
if (membership != null) {
// Query may have found stale index entries.
members.add(new OrganizationMemberView(user, membership));
}
}
return members;
}
public OrganizationMemberView(User user, OrganizationMembership membership) {
super(user);
role = membership.getRole();
requestedRole = membership.getRequestedRole();
}
}