package pro.beam.api.services.impl;

import com.google.common.collect.ImmutableMap;
import com.google.common.util.concurrent.ListenableFuture;
import pro.beam.api.BeamAPI;
import pro.beam.api.resource.BeamUser;
import pro.beam.api.response.users.UserSearchResponse;
import pro.beam.api.services.AbstractHTTPService;

import java.util.Map;

public class UsersService extends AbstractHTTPService {
    public UsersService(BeamAPI beam) {
        super(beam, "users");
    }

    public ListenableFuture<BeamUser> login(String username, String password) {
        return this.post("login", BeamUser.class, new ImmutableMap.Builder<String, Object>()
                                                    .put("username", username)
                                                    .put("password", password).build());
    }

    public ListenableFuture<UserSearchResponse> search(String query) {
        if (query != null && query.length() < 3) {
            throw new IllegalArgumentException("unable to preform search with query less than 3 characters (was "+query.length()+")");
        } else {
            Map<String, Object> args = new ImmutableMap.Builder<String, Object>()
                                        .put("query", query).build();

            return this.get("search", UserSearchResponse.class, args);
        }
    }
}

@@ -458,32 +458,156 @@
 users%22);%0A    %7D%0A%0A
+    public ListenableFuture%3CBeamUser%3E findOne(int id) %7B%0A        return this.get(String.valueOf(id), BeamUser.class);%0A    %7D%0A%0A
     public Liste

Add #findOne to the UsersService class