home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / com / althea / client / shufflr / model / UserProxy.as < prev   
Encoding:
Text File  |  2010-06-23  |  9.4 KB  |  261 lines

  1. package com.althea.client.shufflr.model
  2. {
  3.    import com.althea.client.shufflr.ApplicationFacade;
  4.    import com.althea.client.shufflr.controller.errors.ApplicationError;
  5.    import com.althea.client.shufflr.model.vo.RegistrationDescriptor;
  6.    import com.facebook.data.users.FacebookUser;
  7.    import flash.xml.XMLDocument;
  8.    import flash.xml.XMLNode;
  9.    import mx.logging.LogEventLevel;
  10.    import mx.rpc.AsyncToken;
  11.    import mx.rpc.Fault;
  12.    import mx.rpc.IResponder;
  13.    import mx.rpc.events.FaultEvent;
  14.    import mx.rpc.http.HTTPService;
  15.    import mx.rpc.xml.SimpleXMLEncoder;
  16.    import org.puremvc.as3.multicore.patterns.proxy.Proxy;
  17.    
  18.    public class UserProxy extends Proxy implements IResponder
  19.    {
  20.       public static const NAME:String = "UserProxy";
  21.       
  22.       private var username:String;
  23.       
  24.       private var service:HTTPService;
  25.       
  26.       public function UserProxy(param1:Object = null)
  27.       {
  28.          super(NAME,param1);
  29.          this.service = new HTTPService();
  30.          this.service.method = "POST";
  31.          this.service.requestTimeout = 20;
  32.          this.service.url = NavMapProxy.serverUrl;
  33.       }
  34.       
  35.       private function sendFacebookNote(param1:Object) : void
  36.       {
  37.          var _loc2_:String = param1.result.rss.channel.status;
  38.       }
  39.       
  40.       private function sendAuthNote(param1:Object) : void
  41.       {
  42.          var _loc2_:Object = new Object();
  43.          var _loc3_:String = param1.result.rss.channel.status;
  44.          _loc2_.login = param1.result.rss.channel.login;
  45.          _loc2_.id = param1.result.rss.channel.id;
  46.          _loc2_.fb_info_status = param1.result.rss.channel.fb_info_status;
  47.          _loc2_.questionnaire_submitted = param1.result.rss.channel.questionnaire_submitted;
  48.          if(_loc3_ == "success")
  49.          {
  50.             this.sendNotification(ApplicationFacade.AUTHENTICATED_SUCCESS,_loc2_);
  51.          }
  52.          else
  53.          {
  54.             this.username = "";
  55.             this.sendNotification(ApplicationFacade.UNAUTHENTICATED_SUCCESS);
  56.          }
  57.       }
  58.       
  59.       public function register(param1:RegistrationDescriptor) : void
  60.       {
  61.          this.service.url = NavMapProxy.serverUrl + "register";
  62.          var _loc2_:Object = {};
  63.          _loc2_["user[name]"] = param1.fullname;
  64.          _loc2_["user[login]"] = param1.username;
  65.          _loc2_["user[gender]"] = param1.gender;
  66.          _loc2_["user[password]"] = param1.password;
  67.          _loc2_["user[email]"] = param1.email;
  68.          _loc2_["user[location"] = param1.location;
  69.          _loc2_["user[dob]"] = param1.dob;
  70.          _loc2_["user[fb_id]"] = param1.facebookId;
  71.          _loc2_["user[twitter_id]"] = param1.twitterId;
  72.          _loc2_["user[invite_code]"] = param1.inviteCode;
  73.          _loc2_["download_source"] = param1.sourceSite;
  74.          _loc2_["user[above_13]"] = param1.above13;
  75.          _loc2_["user[tc_consent]"] = param1.tcConsent;
  76.          _loc2_["version"] = param1.version;
  77.          var _loc3_:AsyncToken = this.service.send(_loc2_);
  78.          _loc3_.dataType = "register";
  79.          _loc3_.addResponder(this);
  80.          this.username = param1.username;
  81.       }
  82.       
  83.       private function sendActivateKeyNote(param1:Object) : void
  84.       {
  85.          var _loc2_:String = param1.result.rss.channel.status;
  86.       }
  87.       
  88.       private function sendKeyNote(param1:Object) : void
  89.       {
  90.          var _loc2_:String = param1.result.rss.channel.status;
  91.          if(_loc2_ == "failure")
  92.          {
  93.             this.sendNotification(ApplicationFacade.CHECK_KEY_FAILED);
  94.          }
  95.          else
  96.          {
  97.             this.sendNotification(ApplicationFacade.CHECK_KEY_SUCCESS,param1.result.rss.channel.email);
  98.          }
  99.       }
  100.       
  101.       public function activateKey(param1:String) : void
  102.       {
  103.          this.service.url = NavMapProxy.serverUrl + "users/activation/activate";
  104.          var _loc2_:Object = {};
  105.          _loc2_["key"] = param1;
  106.          var _loc3_:AsyncToken = this.service.send(_loc2_);
  107.          _loc3_.dataType = "activateKey";
  108.          _loc3_.addResponder(this);
  109.       }
  110.       
  111.       public function unauthenticate() : void
  112.       {
  113.          this.service.url = NavMapProxy.serverUrl + "logout";
  114.       }
  115.       
  116.       private function sendUsernameNote(param1:Object) : void
  117.       {
  118.          var _loc2_:String = param1.result.rss.channel.status;
  119.          if(_loc2_ == "taken")
  120.          {
  121.             this.sendNotification(ApplicationFacade.USERNAME_TAKEN);
  122.          }
  123.          else if(_loc2_ == "available")
  124.          {
  125.             this.sendNotification(ApplicationFacade.USERNAME_AVAILABLE);
  126.          }
  127.       }
  128.       
  129.       public function fault(param1:Object) : void
  130.       {
  131.          var _loc2_:Fault = FaultEvent(param1).fault;
  132.          var _loc3_:String = param1.token.dataType;
  133.          switch(_loc3_)
  134.          {
  135.             case "register":
  136.                this.sendNotification(ApplicationFacade.REGISTER_TIMEOUT);
  137.                break;
  138.             case "login":
  139.                this.sendNotification(ApplicationFacade.AUTHENTICATION_TIMEOUT);
  140.                break;
  141.             case "checkUsername":
  142.                this.sendNotification(ApplicationFacade.USERNAME_REQ_TIMEOUT);
  143.                break;
  144.             case "facebookUserData":
  145.                break;
  146.             case "checkKey":
  147.                this.sendNotification(ApplicationFacade.CHECK_KEY_TIMEOUT);
  148.                break;
  149.             case "activateKey":
  150.          }
  151.          var _loc4_:ApplicationError = new ApplicationError(LogEventLevel.ERROR,9000,"authError");
  152.          sendNotification(ApplicationFacade.ERROR,_loc4_,"authError");
  153.       }
  154.       
  155.       public function authenticate(param1:String, param2:String, param3:String) : void
  156.       {
  157.          this.username = param1;
  158.          this.service.url = NavMapProxy.serverUrl + "session";
  159.          var _loc4_:Object = {};
  160.          _loc4_["login"] = param1;
  161.          _loc4_["password"] = param2;
  162.          _loc4_["version"] = param3;
  163.          var _loc5_:AsyncToken = this.service.send(_loc4_);
  164.          _loc5_.dataType = "login";
  165.          _loc5_.addResponder(this);
  166.       }
  167.       
  168.       public function checkKey(param1:String) : void
  169.       {
  170.          this.service.url = NavMapProxy.serverUrl + "users/activation/validate";
  171.          var _loc2_:Object = {};
  172.          _loc2_["key"] = param1;
  173.          var _loc3_:AsyncToken = this.service.send(_loc2_);
  174.          _loc3_.dataType = "checkKey";
  175.          _loc3_.addResponder(this);
  176.       }
  177.       
  178.       public function sendFacebookData(param1:FacebookUser) : void
  179.       {
  180.          var _loc2_:QName = new QName("root");
  181.          var _loc3_:XMLDocument = new XMLDocument();
  182.          var _loc4_:SimpleXMLEncoder = new SimpleXMLEncoder(_loc3_);
  183.          var _loc5_:XMLNode = _loc4_.encodeValue(param1,_loc2_,_loc3_);
  184.          var _loc6_:XML = new XML(_loc3_.toString());
  185.          trace(_loc6_.toXMLString());
  186.          this.service.url = NavMapProxy.serverUrl + "users/fb_info";
  187.          var _loc7_:Object = {};
  188.          _loc7_["fb_xml"] = _loc6_.toXMLString();
  189.          var _loc8_:AsyncToken = this.service.send(_loc7_);
  190.          _loc8_.dataType = "facebookUserData";
  191.          _loc8_.addResponder(this);
  192.       }
  193.       
  194.       public function result(param1:Object) : void
  195.       {
  196.          var dataType:String = null;
  197.          var rpcEvent:Object = param1;
  198.          try
  199.          {
  200.             dataType = rpcEvent.token.dataType;
  201.             if(rpcEvent.result.rss.channel.status == "failure" && rpcEvent.result.rss.channel.error == "invalid session")
  202.             {
  203.                this.sendNotification(ApplicationFacade.LOGOUT);
  204.             }
  205.             switch(dataType)
  206.             {
  207.                case "register":
  208.                   this.sendRegisterNote(rpcEvent);
  209.                   break;
  210.                case "login":
  211.                   this.sendAuthNote(rpcEvent);
  212.                   break;
  213.                case "checkUsername":
  214.                   this.sendUsernameNote(rpcEvent);
  215.                   break;
  216.                case "facebookUserData":
  217.                   this.sendFacebookNote(rpcEvent);
  218.                   break;
  219.                case "checkKey":
  220.                   this.sendKeyNote(rpcEvent);
  221.                   break;
  222.                case "activateKey":
  223.                   this.sendActivateKeyNote(rpcEvent);
  224.             }
  225.          }
  226.          catch(errObj:Error)
  227.          {
  228.             trace(errObj.message);
  229.          }
  230.       }
  231.       
  232.       public function checkUsername(param1:String) : void
  233.       {
  234.          this.service.url = NavMapProxy.serverUrl + "users/availability/" + param1;
  235.          var _loc2_:AsyncToken = this.service.send();
  236.          _loc2_.dataType = "checkUsername";
  237.          _loc2_.addResponder(this);
  238.       }
  239.       
  240.       private function sendRegisterNote(param1:Object) : void
  241.       {
  242.          var _loc4_:Object = null;
  243.          var _loc2_:String = param1.result.rss.channel.status;
  244.          var _loc3_:Object = new Object();
  245.          _loc3_.id = param1.result.rss.channel.id;
  246.          _loc3_.login = param1.result.rss.channel.login;
  247.          if(_loc2_ == "success")
  248.          {
  249.             this.sendNotification(ApplicationFacade.REGISTER_SUCCESS,_loc3_);
  250.          }
  251.          else
  252.          {
  253.             this.username = "";
  254.             _loc4_ = param1.result.rss.channel.errors;
  255.             this.sendNotification(ApplicationFacade.REGISTER_FAILED,_loc4_.error);
  256.          }
  257.       }
  258.    }
  259. }
  260.  
  261.