/**
* JBoss, Home of Professional Open Source
* Copyright Red Hat, Inc., and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jboss.aerogear.todo;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import org.jboss.aerogear.android.Callback;
import org.jboss.aerogear.android.authentication.AuthenticationConfig;
import org.jboss.aerogear.android.authentication.AuthenticationModule;
import org.jboss.aerogear.android.authentication.impl.Authenticator;
import org.jboss.aerogear.android.http.HeaderAndBody;
import org.jboss.aerogear.android.impl.pipeline.PipeConfig;
import org.jboss.aerogear.todo.data.Project;
import org.jboss.aerogear.todo.data.Tag;
import org.jboss.aerogear.todo.data.Task;
import android.app.Activity;
import android.app.Application;
import android.support.v4.app.FragmentActivity;
public class ToDoApplication extends Application {
private Pipeline pipeline;
private Authenticator auth;
@Override
public void onCreate() {
super.onCreate();
try {
URL baseURL = new URL("http://todo-aerogear.rhcloud.com/todo-server");
// Set up Authenticator
auth = new Authenticator(baseURL);
AuthenticationConfig config = new AuthenticationConfig();
config.setEnrollEndpoint("/auth/register");
AuthenticationModule authModule = auth.auth("login", config);
// Set up Pipeline
pipeline = new Pipeline(baseURL);
PipeConfig pipeConfigTask = new PipeConfig(baseURL, Task.class);
pipeConfigTask.setName("tasks");
pipeConfigTask.setEndpoint("tasks");
pipeConfigTask.setAuthModule(authModule);
pipeline.pipe(Task.class, pipeConfigTask);
PipeConfig pipeConfigTag = new PipeConfig(baseURL, Tag.class);
pipeConfigTag.setName("tags");
pipeConfigTag.setEndpoint("tags");
pipeConfigTag.setAuthModule(authModule);
pipeline.pipe(Tag.class, pipeConfigTag);
PipeConfig pipeConfigProject = new PipeConfig(baseURL, Project.class);
pipeConfigProject.setName("projects");
pipeConfigProject.setEndpoint("projects");
pipeConfigProject.setAuthModule(authModule);
pipeline.pipe(Project.class, pipeConfigProject);
} catch (MalformedURLException e) {
// TODO Logger?
}
}
public Pipeline getPipeline() {
return pipeline;
}
public void login(FragmentActivity activity, String username, String password,
Callback<HeaderAndBody> callback) {
auth.get("login", activity).login(username, password, callback);
}
public void logout(FragmentActivity activity, Callback<Void> callback) {
auth.get("login", activity).logout(callback);
}
public void enroll(FragmentActivity activity, String firstName, String lastName, String emailAddress,
String username, String password, String role,
Callback<HeaderAndBody> callback) {
HashMap<String, String> userData = new HashMap<String, String>();
userData.put("firstname", firstName);
userData.put("lastname", lastName);
userData.put("email", emailAddress);
userData.put("username", username);
userData.put("password", password);
userData.put("role", role);
auth.get("login", activity).enroll(userData, callback);
}
}