public static List<Task> getTasksByUser(int userId) {

    List<Task> tasks = new ArrayList<Task>();

    NoJsonHttpRequest getRequest =
        new NoJsonHttpRequest(serverUrl, tasksPath + "?ownerId=" + userId, "GET");
    getRequest.addHeaderParameter(authorizationHeaderName, Util.base64Header);

    int statusCode = getRequest.execute();

    if (statusCode >= 300) {
      return tasks;
    }

    String response = getRequest.getResponse();

    try {
      JSONArray ja = new JSONArray(response);
      for (int i = 0; i < ja.length(); i++) {
        JSONObject jo = ja.getJSONObject(i);
        tasks.add(
            new Task(
                jo.getInt("id"),
                jo.getString("description"),
                jo.getInt("managerId"),
                jo.getInt("ownerId"),
                jo.getString("deadline"),
                jo.getString("status")));
      }
    } catch (JSONException e) {
      e.printStackTrace();
    }

    return tasks;
  }
  public static List<User> getAllUsers() {

    List<User> users = new ArrayList<User>();

    NoJsonHttpRequest getRequest = new NoJsonHttpRequest(serverUrl, usersPath, "GET");
    getRequest.addHeaderParameter(authorizationHeaderName, Util.base64Header);

    int statusCode = getRequest.execute();

    if (statusCode >= 300) {
      return users;
    }

    String response = getRequest.getResponse();

    try {
      JSONArray ja = new JSONArray(response);
      for (int i = 0; i < ja.length(); i++) {
        JSONObject jo = ja.getJSONObject(i);
        users.add(
            new User(
                jo.getInt("id"),
                jo.getString("name"),
                jo.getString("surname"),
                jo.getBoolean("isManager"),
                jo.getString("username")));
      }
    } catch (JSONException e) {
      e.printStackTrace();
    }

    return users;
  }
 public static void deleteTask(Task task) {
   NoJsonHttpRequest request =
       new NoJsonHttpRequest(serverUrl, tasksPath + "/" + task.getId(), "DELETE");
   request.addHeaderParameter(authorizationHeaderName, Util.base64Header);
   request.addHeaderParameter("Content-Type", "application/json");
   request.execute();
 }
  public static User authenticateUser(String username, String password) {
    String base64input = username + ":" + password;
    String base64 = "Basic " + Base64.encodeToString(base64input.getBytes(), Base64.DEFAULT);
    Util.base64Header = base64;

    NoJsonHttpRequest getRequest = new NoJsonHttpRequest(serverUrl, authenticationPath, "GET");
    getRequest.addHeaderParameter(authorizationHeaderName, base64);

    int statusCode = getRequest.execute();

    if (statusCode >= 300) {
      return null;
    }

    Gson gson = new Gson();
    User user = gson.fromJson(getRequest.getResponse(), User.class);

    return user;
  }