package im.tox.upsourcebot.jdbi;
import org.skife.jdbi.v2.sqlobject.Bind;
import org.skife.jdbi.v2.sqlobject.GetGeneratedKeys;
import org.skife.jdbi.v2.sqlobject.SqlQuery;
import org.skife.jdbi.v2.sqlobject.SqlUpdate;
import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
import java.util.List;
import im.tox.upsourcebot.core.User;
@RegisterMapper(User.UserMapper.class)
public interface UserDao {
@SqlUpdate("insert into user (name, passwordHash) values (:name, :passwordHash)")
@GetGeneratedKeys
long insert(@Bind("name") String name, @Bind("passwordHash") String passwordHash);
@SqlUpdate("delete from user where user.id = :id")
int delete(@Bind("id") long id);
@SqlUpdate("update user set passwordHash = :passwordHash where id = :id")
int updatePassword(@Bind("passwordHash") String passwordHash, @Bind("id") long id);
@SqlQuery("select id, name, passwordHash from user where id = :id")
User findById(@Bind("id") long id);
@SqlQuery("select id, name, passwordHash from user where name = :name")
User findByName(@Bind("name") String name);
@SqlQuery("select id, name, passwordHash from user")
List<User> getAll();
}