package eu.dnetlib.r2d2.neo4j.dao;

import eu.dnetlib.r2d2.neo4j.domain.Neo4jGroup;
import eu.dnetlib.r2d2.neo4j.domain.Relationships;

public class Neo4jGroupDao extends Neo4JDao<Neo4jGroup> implements GroupDao {
	
	public Neo4jGroupDao() {
		super(Relationships._GROUPS, Relationships._GROUP, Neo4jGroup.class);
	}
	
	@Override
	protected Neo4jGroup createBean() {
		return new Neo4jGroup();
	}

	@Override
	public void addUserToGroup(String groupId, String userId) {
		this.createRelationship(groupId, userId, Relationships.MEMBER);
	}
	
	@Override
	public void removeUserFromGroup(String groupId, String userId) {
		this.removeRelationship(groupId, userId, Relationships.MEMBER);
	}

	@Override
	public Iterable<Neo4jGroup> getUserGroups(String userId) {
		return this.findRelatedNodesIncoming(userId, Relationships.MEMBER);
	}
}