Advertisement
leokan23

Untitled

Jul 30th, 2020
5,241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package services {
  2. import classes.*;
  3.  
  4. import flash.events.Event;
  5. import flash.events.HTTPStatusEvent;
  6. import flash.events.IOErrorEvent;
  7. import flash.net.URLLoader;
  8. import flash.net.URLRequest;
  9. import flash.net.URLRequestHeader;
  10. import flash.net.URLRequestMethod;
  11. import flash.net.URLVariables;
  12. import flash.system.Capabilities;
  13.  
  14. import flashx.textLayout.formats.LineBreak;
  15.  
  16. import mx.collections.ArrayCollection;
  17.  
  18. import vo.UserVO;
  19.  
  20. public class UserService {
  21.     public function UserService() {
  22.  
  23.         var deviceType:String=Capabilities.manufacturer;
  24.         if(deviceType == "Android Linux")
  25.                 API_URL=LIVE_URL;
  26.         else
  27.                 API_URL=DEV_URL;
  28.  
  29.         trace(API_URL)
  30.  
  31.     }
  32.  
  33.     /*Variables used in api helper*/
  34.     private const LIVE_URL:String = 'https://trekrecord.simpleapps.gr/'
  35.     private const DEV_URL:String = 'http://localhost:8080/'
  36.     private var API_URL:String = DEV_URL
  37.  
  38.     public var API_KEY:String;
  39.  
  40.  
  41.     /*Instant of this class*/
  42.     private static var _instance:UserService;
  43.     public static function get instance():UserService {
  44.         if (!_instance) _instance = new UserService();
  45.         return _instance;
  46.     }
  47.  
  48.     /*Used for Callbacks*/
  49.     private var onResultCallback:Function;
  50.  
  51.     /*Header used in all calls*/
  52.     public var headers:Array;
  53.  
  54.     public function init(key:String):void
  55.     {
  56.         API_KEY=key;
  57.         headers = [
  58.             new URLRequestHeader("contentType", "application/x-www-form-urlencoded"),
  59.             new URLRequestHeader("Accept-Language", "en_US"),
  60.             new URLRequestHeader("X-Authorization", "Bearer " + API_KEY)
  61.         ];
  62.     }
  63.  
  64.     private function loaderHelper(urlRequest:URLRequest, onCompleteCallback:Function ):void{
  65.  
  66.         function _onComplete(e:Event) {
  67.             var results:ArrayCollection = new ArrayCollection();
  68.             var stringJson:String=String (e.target.data);
  69.             var result = JSON.parse(stringJson);
  70.             if( onCompleteCallback != null ) onCompleteCallback(result);
  71.         }
  72.  
  73.         function _onNotify(e:IOErrorEvent) {
  74.             trace("error");
  75.             trace(e.errorID);
  76.             e.target.removeEventListener(IOErrorEvent.IO_ERROR, _onNotify);
  77.  
  78.             var result:Object = new Object();
  79.             result.error=true;
  80.             result.message=e.errorID;
  81.             if( onCompleteCallback != null ) onCompleteCallback(result);
  82.         }
  83.  
  84.         var _jsonLoader:URLLoader = new URLLoader();
  85.         _jsonLoader.load(urlRequest);
  86.         _jsonLoader.addEventListener(Event.COMPLETE, _onComplete);
  87.         _jsonLoader.addEventListener(IOErrorEvent.IO_ERROR, _onNotify)
  88.         _jsonLoader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, onHTTPResponseStatus );
  89.         _jsonLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus);
  90.     }
  91.  
  92.  
  93.  
  94.  
  95.     /**
  96.      * Get all Users from server
  97.      * */
  98.     public function getAllUsers(callback):void
  99.     {
  100.         var urlReq:URLRequest = new URLRequest(API_URL+'users');
  101.         urlReq.method = URLRequestMethod.GET;
  102.         urlReq.requestHeaders = APIHelper.instance.headers;
  103.  
  104.         loaderHelper(urlReq,callback);
  105.     }
  106.  
  107.     /**
  108.      * Get all UserVO data from server
  109.      * */
  110.     public function getUserDataFromServerWithID(id:int,callback):void
  111.     {
  112.         var urlReq:URLRequest = new URLRequest(API_URL+'user/'+id);
  113.         urlReq.method = URLRequestMethod.GET;
  114.         urlReq.requestHeaders = APIHelper.instance.headers;
  115.  
  116.         loaderHelper(urlReq,callback);
  117.     }
  118.  
  119.     /**
  120.      * Get all UserVO data from server
  121.      * */
  122.     public function getUserDataFromServerWithFirebaseID(firebase_id:String,callback):void
  123.     {
  124.         onResultCallback=callback;
  125.         var urlReq:URLRequest = new URLRequest(API_URL+'user/withFirebaseId/'+firebase_id);
  126.         urlReq.method = URLRequestMethod.GET;
  127.         urlReq.requestHeaders = APIHelper.instance.headers;
  128.         loaderHelper(urlReq,callback);
  129.     }
  130.  
  131.     public function setUser(tempUser:Object ):void
  132.     {
  133.         if (tempUser) {
  134.             globals.MY_USER.fname = tempUser.fname;
  135.             globals.MY_USER.lname = tempUser.lname;
  136.             globals.MY_USER.displayName = tempUser.lname + " " + tempUser.fname;
  137.             globals.MY_USER.photo_url = tempUser.photo_url;
  138.             globals.MY_USER.bio = tempUser.bio;
  139.             globals.MY_USER.country_id = tempUser.country_id;
  140.             globals.MY_USER.homebase = tempUser.country_name;
  141.             globals.MY_USER.email = tempUser.email;
  142.         }
  143.     }
  144.  
  145.     public function getUserPoints(userId:int, callback):void
  146.     {
  147.  
  148.         var urlReq:URLRequest = new URLRequest(API_URL+'user/points/'+userId);
  149.         urlReq.method = URLRequestMethod.GET;
  150.         urlReq.requestHeaders = APIHelper.instance.headers;
  151.  
  152.         loaderHelper(urlReq,callback);
  153.     }
  154.  
  155.     /**
  156.      * Get all countries in the wishlist of a user
  157.      * */
  158.     public function getUserWishlist(userId:int, callback):void
  159.     {
  160.         var urlReq:URLRequest = new URLRequest(API_URL+'user/wishlist/'+userId);
  161.         urlReq.method = URLRequestMethod.GET;
  162.         urlReq.requestHeaders = APIHelper.instance.headers;
  163.  
  164.         loaderHelper(urlReq,callback);
  165.     }
  166.  
  167.     public function addToUserWishlist(userId:int, countryId:int, callback):void
  168.     {
  169.         onResultCallback=callback;
  170.         var urlReq:URLRequest = new URLRequest(API_URL+'/api/records//');
  171.         urlReq.method = URLRequestMethod.POST;
  172.         urlReq.requestHeaders = APIHelper.instance.headers;
  173.  
  174.         var paramss:URLVariables = new URLVariables();
  175.         paramss.user_id=userId;
  176.         paramss.countries_id=countryId;
  177.  
  178.         urlReq.data = paramss;
  179.     }
  180.  
  181.     /**
  182.      * Get users visited countries with map
  183.      * */
  184.     public function getVisitedCountries(userId:int, callback):void {
  185.         var urlReq:URLRequest = new URLRequest(API_URL+'user/visitedCountries/'+userId);
  186.         urlReq.method = URLRequestMethod.GET;
  187.         urlReq.requestHeaders = UserService.instance.headers;
  188.         loaderHelper(urlReq,callback);
  189.     }
  190.  
  191.     /**
  192.      * Register user in local database. Used to register a user in local db after registered in Firebase
  193.      * */
  194.     public function registerInformationForUser(user:UserVO, callback):void{
  195.  
  196.  
  197.         var urlReq:URLRequest = new URLRequest(API_URL+'api/records/users');
  198.         urlReq.method = URLRequestMethod.POST;
  199.         urlReq.requestHeaders = UserService.instance.headers;
  200.  
  201.         var paramss:URLVariables = new URLVariables();
  202.         paramss.fname=user.fname;
  203.         paramss.lname=user.lname;
  204.         paramss.bio = user.bio;
  205.         paramss.photo_url = user.photo_url;
  206.         paramss.firebase_id = user.firebase_id;
  207.         paramss.email = user.email;
  208.         paramss.homebase_id = user.homebase_id;
  209.  
  210.         urlReq.data = paramss;
  211.  
  212.         loaderHelper(urlReq,callback);
  213.  
  214.     }
  215.  
  216.  
  217.     /**
  218.      * Update user in local database. Used to update users information
  219.      * */
  220.     public function updateUser(userId:int, fname:String, lname:String, email:String, bio:String, photoUrl:String, homebase_id:int, callback):void
  221.     {
  222.         var urlReq:URLRequest = new URLRequest(API_URL+'api/records/users/'+userId);
  223.         urlReq.method = URLRequestMethod.PUT;
  224.         urlReq.requestHeaders = APIHelper.instance.headers;
  225.  
  226.         var paramss:URLVariables = new URLVariables();
  227.         paramss.fname=fname;
  228.         paramss.lname=lname;
  229.         paramss.bio=bio;
  230.         paramss.email=email;
  231.         paramss.homebase_id = homebase_id;
  232.         if(photoUrl!=null) paramss.photo_url=photoUrl;
  233.  
  234.         urlReq.data = paramss;
  235.  
  236.         loaderHelper(urlReq,callback);
  237.  
  238.     }
  239.  
  240.  
  241.  
  242.     /**
  243.     * Used to remove items from users wishlits. This uses api.php
  244.     * */
  245.     public function removeFromUserWishlist(wishlistId:int, callback):void
  246.     {
  247.         var urlReq:URLRequest = new URLRequest(API_URL+'api/records/users_wishlist/'+wishlistId);
  248.         urlReq.method = URLRequestMethod.DELETE;
  249.         urlReq.requestHeaders = APIHelper.instance.headers;
  250.  
  251.         loaderHelper(urlReq,callback);
  252.     }
  253.  
  254.  
  255.  
  256.  
  257.     /*These functions are help functions to return results*/
  258.  
  259.  
  260.     public static function onHTTPStatus( event:HTTPStatusEvent ):void
  261.     {
  262.         trace("Status is: "+ event.status );
  263.         event.target.removeEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus);
  264.     }
  265.  
  266.     /*Used to check which URL was called*/
  267.     public static function onHTTPResponseStatus( event:HTTPStatusEvent ):void
  268.     {
  269.         trace("Status responseURL: "+ event.responseURL );
  270.         event.target.removeEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, onHTTPResponseStatus );
  271.     }
  272. }
  273. }
  274.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement