package com.campus.prime.core.service;
import static com.campus.prime.constant.AppConstant.TAG;
import org.apache.http.NameValuePair;
import com.campus.prime.app.Auth;
import com.campus.prime.core.Token;
import com.campus.prime.core.User;
import com.campus.prime.core.UserPage;
import com.campus.prime.core.client.CampusClient;
import com.campus.prime.core.client.Urls;
import com.campus.prime.utils.CommonLog;
import com.campus.prime.utils.LogFactory;
public class UserService extends CampusService{
CommonLog log = LogFactory.createLog(TAG);
public UserService() {
// TODO Auto-generated constructor stub
super();
}
public UserService(CampusClient client){
super(client);
}
/**
* login
* @param username
* @param password
* @return
*/
public Token login(String username,String password){
Token token = null;
String url = Urls.USER_LOGIN;
log.i(url);
try {
String jsonObject = "{\"username\":\"" + username + "\",\"password\":\"" + password + "\"}";
token = getClient().post(url,Token.class,jsonObject,(NameValuePair[])null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return token;
}
return token;
}
/**
* register a new user
* @param username
* @param email
* @param password
* @return
*/
public User register(String username,String email,String password){
User user = null;
String url = Urls.USER_REGISTER;
try{
String jsonObject = "{\"username\":\"" + username + "\",\"email\":\"" + "\",\"password\":\"" + password + "\"}";
user = getClient().post(url, User.class, jsonObject,(NameValuePair[])null);
}catch(Exception e){
e.printStackTrace();
return user;
}
return user;
}
/**
* get current user's profile
* @return
*/
public User getProfile(){
User user;
if(!Auth.isAuth())
return null;
String url = Urls.USER_PROFILE_BY_NAME + Auth.username + '/';
log.i(url);
try{
user = getClient().setCredential(Auth.token).get(url,User.class,(NameValuePair[])null);
}catch(Exception e){
e.printStackTrace();
return null;
}
log.i(user.toString());
return user;
}
/**
* get username's profile
* @param username
* @return
*/
public User getProfile(String username){
User user;
if(!Auth.isAuth())
return null;
log.i(Auth.token);
String url = Urls.USER_PROFILE_BY_NAME + username + '/';
log.i(url);
try{
user = getClient().setCredential(Auth.token).get(url,User.class,(NameValuePair[])null);
}catch(Exception e){
e.printStackTrace();
return null;
}
return user;
}
/**
* get id's profile
* @param id
* @return
*/
public User getProfile(int id){
User user;
if(!Auth.isAuth())
return null;
String url = Urls.USER_PROFILE_BY_ID + id + '/' ;
log.i(url);
try{
user = getClient().setCredential(Auth.token).get(url,User.class,(NameValuePair[])null);
}catch(Exception e){
e.printStackTrace();
return null;
}
return user;
}
/**
* get group's users
* @param groupId
* @return
*/
public UserPage getUsersByGroup(int groupId){
UserPage page = null;
String url = Urls.USERS_GROUP + groupId + '/';
log.i(url);
try {
page = getClient().setCredential(Auth.token).get(url,UserPage.class,(NameValuePair[])null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return page;
}
return page;
}
/**
* get next page
* @param url
* @return
*/
public UserPage getNext(String url){
UserPage result;
try {
result = getClient().get(url,UserPage.class,(NameValuePair[])null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
return result;
}
}