Example #1
0
        private void GetByPlatformAccountId(HydraRequest request)
        {
            IHydraItem item = HydraItemDeserializer.Deserialize(request.PostData);

            HydraHashMap    map = item as HydraHashMap;
            HydraUtf8String platformAccountIdString = map.Items["value"] as HydraUtf8String;
            ulong           platformAccountId       = ulong.Parse(platformAccountIdString.Value);

            HydraHashMap result = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "getUsersByProperty", new HydraHashMap(new Dictionary <string, IHydraItem>()
                    {
                        { "result", new HydraHashMap(new Dictionary <string, IHydraItem>()
                            {
                                { "items", new HydraHashMap(new Dictionary <string, IHydraItem>()
                                    {
                                        { "item", new HydraUtf8String("1") }
                                    }) }
                            }) }
                    }) }
            });

            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
        /*
         * Parameters:
         * 0: channel id
         * 1: page number
         * 2: page size
         * 3: include non-published? 1 or 0
         */
        private void GetItemsByChannel(HydraRequest request)
        {
            int channelId = int.Parse(request.Parameters[0]);

            Channel channel = Channel.ChannelGetById(channelId);
            List <ChannelMessage> messages = ChannelMessage.GetMessagesForChannel(channel);

            HydraArray array = new HydraArray();

            foreach (ChannelMessage message in messages)
            {
                HydraHashMap map = new HydraHashMap();

                foreach (var str in message.Strings)
                {
                    map.Items.Add(str.Key, new HydraUtf8String(str.Value));
                }

                array.Items.Add(new HydraHashMap(new Dictionary <string, IHydraItem>()
                {
                    { "input", map }
                }));
            }

            HydraResponse response = new HydraResponse(Connection, array);

            response.Send();
        }
        private void Create(HydraRequest request)
        {
            List <IHydraItem> items = HydraItemDeserializer.DeserializeAll(request.PostData);

            HydraResponse response = new HydraResponse(Connection, new HydraInt64(1));

            response.Send();
        }
        private void Update(HydraRequest request)
        {
            List <IHydraItem> items = HydraItemDeserializer.DeserializeAll(request.PostData);

            HydraInt64   profileId = items[0] as HydraInt64;
            HydraHashMap map       = items[1] as HydraHashMap;

            HydraResponse response = new HydraResponse(Connection, new HydraNone());

            response.Send();
        }
Example #5
0
        private void DisplayUser(HydraRequest request)
        {
            IHydraItem item = HydraItemDeserializer.Deserialize(request.PostData);

            HydraHashMap map    = item as HydraHashMap;
            HydraInt32   userId = map.Items["user_id"] as HydraInt32;

            HydraHashMap result = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "username", new HydraUtf8StringAsBinary("user") }
            });
            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
Example #6
0
        private void GetByName(HydraRequest request)
        {
            IHydraItem item = HydraItemDeserializer.Deserialize(request.PostData);

            HydraHashMap    map      = item as HydraHashMap;
            HydraUtf8String username = map.Items["username"] as HydraUtf8String;


            int userId = 1;

            HydraInt32    result   = new HydraInt32(userId);
            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
        /*
         * Parameters:
         * 0: channel owner
         */
        private void GetChannelsByOwner(HydraRequest request)
        {
            ChannelOwner owner = (ChannelOwner)int.Parse(request.Parameters[0]);

            Game    game    = Game.GetFromApiKey(request.ApiKey);
            Channel channel = Channel.ChannelGetByOwner(game, owner);

            HydraArray array = new HydraArray(new List <IHydraItem>()
            {
                new HydraInt64(channel.ID),
            });

            HydraResponse response = new HydraResponse(Connection, array);

            response.Send();
        }
Example #8
0
        public void HandleRequest(HydraRequest request)
        {
            switch (request.Action)
            {
            case "create":
            {
                Create(request);
                break;
            }

            case "display_user":
            {
                DisplayUser(request);
                break;
            }

            case "get_by_name":
            {
                GetByName(request);
                break;
            }

            case "get_by_platform_account_id":
            {
                GetByPlatformAccountId(request);
                break;
            }

            case "login_with_auth_user_session":
            {
                LoginWithAuthUserSession(request);
                break;
            }

            case "set_platform_account_id":
            {
                SetPlatformAccountId(request);
                break;
            }

            default:
            {
                request.DumpToFile();
                break;
            }
            }
        }
Example #9
0
        private void LoginWithAuthUserSession(HydraRequest request)
        {
            IHydraItem   item     = HydraItemDeserializer.Deserialize(request.PostData);
            HydraHashMap map      = item as HydraHashMap;
            string       username = (map.Items["username"] as HydraUtf8String).Value;
            string       password = (map.Items["password"] as HydraUtf8String).Value;

            HydraHashMap result = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "auth_user_return", new HydraUtf8StringAsBinary("success") },
                { "user_id", new HydraInt32(1) }
            });

            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
        /*
         * Parameters:
         * 0: Steam ID (this is a SteamID3 - it is the same as a Steamworks AccountID)
         */
        private void GetByPlatformAccountId(HydraRequest request)
        {
            ulong steamId = ulong.Parse(request.Parameters[0]);

            HydraHashMap map = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "guid", new HydraInt64(1) },
                { "vip_code", new HydraHashMap(new Dictionary <string, IHydraItem>()
                    {
                        { "code", new HydraUtf8String("1234567890") },
                        { "accepted", new HydraBool(true) },
                        { "accepted_at", new HydraDateTime(DateTime.Now) }
                    }) }
            });

            HydraResponse response = new HydraResponse(Connection, map);

            response.Send();
        }
Example #11
0
        private void Create(HydraRequest request)
        {
            IHydraItem item = HydraItemDeserializer.Deserialize(request.PostData);

            HydraHashMap map = item as HydraHashMap;

            string username   = (map.Items["username"] as HydraUtf8String).Value;
            string password   = (map.Items["password"] as HydraUtf8String).Value;
            string email      = (map.Items["email"] as HydraUtf8String).Value;
            string firstname  = (map.Items["firstname"] as HydraUtf8String).Value;              // always contains "firstname"
            string lastname   = (map.Items["lastname"] as HydraUtf8String).Value;               // always contains "lastname"
            int    birthDay   = int.Parse((map.Items["birth_day"] as HydraUtf8String).Value);   // always 0
            int    birthMonth = int.Parse((map.Items["birth_month"] as HydraUtf8String).Value); // always 0
            int    birthYear  = int.Parse((map.Items["birth_year"] as HydraUtf8String).Value);  // always 2000

            int userId = 1;

            HydraInt32    result   = new HydraInt32(userId);
            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
        public void HandleRequest(HydraRequest request)
        {
            switch (request.Action)
            {
            case "get_channels_by_owner":
            {
                GetChannelsByOwner(request);
                break;
            }

            case "get_items_by_channel":
            {
                GetItemsByChannel(request);
                break;
            }

            default:
            {
                request.DumpToFile();
                break;
            }
            }
        }
Example #13
0
        private void SetPlatformAccountId(HydraRequest request)
        {
            IHydraItem   item      = HydraItemDeserializer.Deserialize(request.PostData);
            HydraHashMap map       = item as HydraHashMap;
            int          userId    = int.Parse((map.Items["userID"] as HydraUtf8String).Value);
            ulong        accountId = ulong.Parse((map.Items["value"] as HydraUtf8String).Value);

            HydraHashMap result = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "setProperty", new HydraHashMap(new Dictionary <string, IHydraItem>()
                    {
                        { "status", new HydraHashMap(new Dictionary <string, IHydraItem>()
                            {
                                { "code", new HydraUtf8String("1") }
                            }
                                                     ) }
                    }) }
            });

            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
        public void HandleRequest(HydraRequest request)
        {
            switch (request.Action)
            {
            case "create":
            {
                Create(request);
                break;
            }

            case "list_selected_for_owner":
            {
                ListSelectedForOwner(request);
                break;
            }

            default:
            {
                request.DumpToFile();
                break;
            }
            }
        }
        public void HandleRequest(HydraRequest request)
        {
            switch (request.Action)
            {
            case "get_by_platform_account_id":
            {
                GetByPlatformAccountId(request);
                break;
            }

            case "update":
            {
                Update(request);
                break;
            }

            default:
            {
                request.DumpToFile();
                break;
            }
            }
        }
        private void Create(HydraRequest request)
        {
            List <IHydraItem> items = HydraItemDeserializer.DeserializeAll(request.PostData);

            HydraInt64   profileId   = items[0] as HydraInt64;
            HydraHashMap map         = items[1] as HydraHashMap;
            HydraBinary  imageBinary = items[2] as HydraBinary;

            Game game = Game.GetFromApiKey(request.ApiKey);

            string category = ((HydraUtf8String)map.Items["category"]).Value;

            if (category == "characters")
            {
                Character character = new Character(game, profileId, map, imageBinary);
                character.Save();

                Console.WriteLine("Saved new character. ID {0}", character.ID);

                HydraResponse response = new HydraResponse(Connection, new HydraInt64(character.ID));
                response.Send();
            }
            else if (category == "screenshots")
            {
                Screenshot screenshot = new Screenshot(game, profileId, map, imageBinary);
                screenshot.Save();

                Console.WriteLine("Saved new screenshot. ID {0}", screenshot.ID);

                HydraResponse response = new HydraResponse(Connection, new HydraInt64(screenshot.ID));
                response.Send();
            }
            else
            {
                throw new Exception("Unknown category? " + category);
            }
        }
        private void ListSelectedForOwner(HydraRequest request)
        {
            int    userId   = int.Parse(request.Parameters[0]);
            int    pageNo   = int.Parse(request.Parameters[1]);
            int    maxItems = int.Parse(request.Parameters[2]);
            string itemType = request.Parameters[3];

            var characters = Character.GetCharacters(pageNo, maxItems);

            Console.WriteLine("Sending characters to game (max {0}):", maxItems);

            HydraArray array = new HydraArray();

            foreach (Character character in characters)
            {
                Console.WriteLine("{0} - {1}", character.ID, character.Name);
                HydraHashMap map = new HydraHashMap(new Dictionary <string, IHydraItem>()
                {
                    { "meta_data", new HydraHashMap(new Dictionary <string, IHydraItem>()
                        {
                            { "Name", new HydraUtf8String(character.Name) },
                            { "Avatar", new HydraBinary(character.AvatarData) },
                            { "Avatar Version", new HydraInt32(character.AvatarVersion) }
                        }
                                                    ) }
                });

                array.Items.Add(map);
            }

            Console.WriteLine();

            HydraResponse response = new HydraResponse(Connection, array);

            response.Send();
        }