package net.thesocialos.server;
import java.util.Calendar;
import javax.servlet.http.HttpServlet;
import net.thesocialos.shared.ChannelApiEvents.ChApiChatUserChngState.STATETYPE;
import net.thesocialos.shared.model.Account;
import net.thesocialos.shared.model.Admin;
import net.thesocialos.shared.model.Columns;
import net.thesocialos.shared.model.Conversation;
import net.thesocialos.shared.model.Facebook;
import net.thesocialos.shared.model.FlickR;
import net.thesocialos.shared.model.Google;
import net.thesocialos.shared.model.Group;
import net.thesocialos.shared.model.ImageUpload;
import net.thesocialos.shared.model.Lines;
import net.thesocialos.shared.model.Oauth1;
import net.thesocialos.shared.model.Oauth2;
import net.thesocialos.shared.model.Session;
import net.thesocialos.shared.model.SharedHistory;
import net.thesocialos.shared.model.SharedHistory.SHARETYPE;
import net.thesocialos.shared.model.Twitter;
import net.thesocialos.shared.model.User;
import com.googlecode.objectify.Key;
import com.googlecode.objectify.Objectify;
import com.googlecode.objectify.ObjectifyService;
import com.googlecode.objectify.Query;
@SuppressWarnings("serial")
public class LoadOnStart extends HttpServlet {
@Override
public void init() {
// User
ObjectifyService.register(Session.class);
ObjectifyService.register(Account.class);
ObjectifyService.register(Admin.class);
ObjectifyService.register(Group.class);
ObjectifyService.register(Twitter.class);
ObjectifyService.register(User.class);
ObjectifyService.register(Columns.class);
// Chat
ObjectifyService.register(Lines.class);
ObjectifyService.register(Conversation.class);
// SocialOS
ObjectifyService.register(Oauth1.class);
ObjectifyService.register(Oauth2.class);
ObjectifyService.register(Facebook.class);
ObjectifyService.register(FlickR.class);
ObjectifyService.register(Google.class);
ObjectifyService.register(ImageUpload.class);
ObjectifyService.register(SharedHistory.class);
setAllUsertoOffline();
// resetContacts();
// createCloudAccounts();
// createSharedExamples();
}
private void setAllUsertoOffline() {
Objectify ofy = ObjectifyService.begin();
Query<User> queryusers = ofy.query(User.class).filter("isConnected =", true);
for (User user : queryusers) {
user.isConnected = false;
user.chatState = STATETYPE.OFFLINE;
ofy.put(user);
}
}
private void resetContacts() {
Objectify ofy = ObjectifyService.begin();
Query<User> queryusers = ofy.query(User.class);
for (User user : queryusers) {
user.resetContacts();
user.resetPetionContacts();
ofy.put(user);
}
}
private void createCloudAccounts() {
Objectify ofy = ObjectifyService.begin();
User user = ofy.get(User.class, "unai@thesocialos.net");
User user1 = ofy.get(User.class, "virtual.solid.snake@gmail.com");
user.clearAccounts();
user1.clearAccounts();
Facebook facebook = new Facebook("facebook1");
FlickR flickR = new FlickR("flickr1");
Twitter twitter = new Twitter("twitter1");
Google google = new Google("google1");
user.addAccount(ofy.put(twitter));
user.addAccount(ofy.put(facebook));
user.addAccount(ofy.put(flickR));
user.addAccount(ofy.put(google));
ofy.put(user);
facebook = new Facebook("facebook2");
flickR = new FlickR("flickr2");
twitter = new Twitter("twitter2");
google = new Google("google2");
user1.addAccount(ofy.put(twitter));
user1.addAccount(ofy.put(facebook));
user1.addAccount(ofy.put(flickR));
user1.addAccount(ofy.put(google));
ofy.put(user1);
}
private void createSharedExamples() {
Objectify ofy = ObjectifyService.begin();
User user = ofy.get(User.class, "unai@thesocialos.net");
User user1 = ofy.get(User.class, "virtual.solid.snake@gmail.com");
SharedHistory video = new SharedHistory(SHARETYPE.VIDEO,
"https://www.youtube.com/embed/EU3wnka0PVc?autoplay=1", "youtube video", Key.create(User.class,
user1.getEmail()), Calendar.getInstance().getTimeInMillis());
SharedHistory image = new SharedHistory(SHARETYPE.IMAGE,
"http://www.trackmania-carpark.com/images/skins/big/Razor%203%20640.jpg", "A modelated car",
Key.create(User.class, user1.getEmail()), Calendar.getInstance().getTimeInMillis());
user.addShare(ofy.put(video));
user.addShare(ofy.put(image));
ofy.put(user);
}
}