From 0c601b73125d1bc120e248149bf4d83ecc27f1c2 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Tue, 8 Apr 2008 11:19:34 +0000 Subject: * Removing lulurun's perl UGAI from core svn, pending a link to an external repository, as per mailing list discussion. --- share/perl/lib/OpenSim/InventoryServer.pm | 249 ------------------------------ 1 file changed, 249 deletions(-) delete mode 100644 share/perl/lib/OpenSim/InventoryServer.pm (limited to 'share/perl/lib/OpenSim/InventoryServer.pm') diff --git a/share/perl/lib/OpenSim/InventoryServer.pm b/share/perl/lib/OpenSim/InventoryServer.pm deleted file mode 100644 index 184e19a..0000000 --- a/share/perl/lib/OpenSim/InventoryServer.pm +++ /dev/null @@ -1,249 +0,0 @@ -package OpenSim::InventoryServer; - -use strict; -use XML::Serializer; -use OpenSim::Utility; -use OpenSim::Config; -use OpenSim::InventoryServer::Config; -use OpenSim::InventoryServer::InventoryManager; - -my $METHOD_LIST = undef; - -sub getHandlerList { - if (!$METHOD_LIST) { - my %list = ( - "GetInventory" => \&_get_inventory, - "CreateInventory" => \&_create_inventory, - "NewFolder" => \&_new_folder, - "MoveFolder" => \&_move_folder, - "NewItem" => \&_new_item, - "DeleteItem" => \&_delete_item, - "RootFolders" => \&_root_folders, - ); - $METHOD_LIST = \%list; - } - return $METHOD_LIST; -} - -# ################# -# Handlers -sub _get_inventory { - my $post_data = shift; - my $uuid = &_get_uuid($post_data); - my $inventry_folders = &OpenSim::InventoryServer::InventoryManager::getUserInventoryFolders($uuid); - my @response_folders = (); - foreach (@$inventry_folders) { - my $folder = &_convert_to_response_folder($_); - push @response_folders, $folder; - } - my $inventry_items = &OpenSim::InventoryServer::InventoryManager::getUserInventoryItems($uuid); - my @response_items = (); - foreach (@$inventry_items) { - my $item = &_convert_to_response_item($_); - push @response_items, $item; - } - my $response_obj = { - Folders => { InventoryFolderBase => \@response_folders }, - AllItems => { InventoryItemBase => \@response_items }, - UserID => { UUID => $uuid }, - }; - my $serializer = new XML::Serializer( $response_obj, "InventoryCollection"); - return $serializer->to_formatted(XML::Serializer::WITH_HEADER); # TODO: -} - -sub _create_inventory { - my $post_data = shift; - my $uuid = &_get_uuid($post_data); - my $InventoryFolders = &_create_default_inventory($uuid); - foreach (@$InventoryFolders) { - &OpenSim::InventoryServer::InventoryManager::saveInventoryFolder($_); - } - my $serializer = new XML::Serializer("true", "boolean"); - return $serializer->to_formatted(XML::Serializer::WITH_HEADER); # TODO: -} - -sub _new_folder { - my $post_data = shift; - my $request_obj = &OpenSim::Utility::XML2Obj($post_data); - my $folder = &_convert_to_db_folder($request_obj); - &OpenSim::InventoryServer::InventoryManager::saveInventoryFolder($folder); - my $serializer = new XML::Serializer("true", "boolean"); - return $serializer->to_formatted(XML::Serializer::WITH_HEADER); # TODO: -} - -sub _move_folder { - my $post_data = shift; - my $request_info = &OpenSim::Utility::XML2Obj($post_data); - &OpenSim::InventoryServer::InventoryManager::moveInventoryFolder($request_info); - my $serializer = new XML::Serializer("true", "boolean"); - return $serializer->to_formatted(XML::Serializer::WITH_HEADER); # TODO: -} - -sub _new_item { - my $post_data = shift; - my $request_obj = &OpenSim::Utility::XML2Obj($post_data); - my $item = &_convert_to_db_item($request_obj); - &OpenSim::InventoryServer::InventoryManager::saveInventoryItem($item); - my $serializer = new XML::Serializer("true", "boolean"); - return $serializer->to_formatted(XML::Serializer::WITH_HEADER); # TODO: -} - -sub _delete_item { - my $post_data = shift; - my $request_obj = &OpenSim::Utility::XML2Obj($post_data); - my $item_id = $request_obj->{inventoryID}->{UUID}; - &OpenSim::InventoryServer::InventoryManager::deleteInventoryItem($item_id); - my $serializer = new XML::Serializer("true", "boolean"); - return $serializer->to_formatted(XML::Serializer::WITH_HEADER); # TODO: -} - -sub _root_folders { - my $post_data = shift; - my $uuid = &_get_uuid($post_data); - my $response = undef; - my $inventory_root_folder = &OpenSim::InventoryServer::InventoryManager::getRootFolder($uuid); - if ($inventory_root_folder) { - my $root_folder_id = $inventory_root_folder->{folderID}; - my $root_folder = &_convert_to_response_folder($inventory_root_folder); - my $root_folders = &OpenSim::InventoryServer::InventoryManager::getChildrenFolders($root_folder_id); - my @folders = ($root_folder); - foreach(@$root_folders) { - my $folder = &_convert_to_response_folder($_); - push @folders, $folder; - } - $response = { InventoryFolderBase => \@folders }; - } else { - $response = ""; # TODO: need better failed message - } - my $serializer = new XML::Serializer($response, "ArrayOfInventoryFolderBase"); - return $serializer->to_formatted(XML::Serializer::WITH_HEADER); # TODO: -} - -# ################# -# subfunctions -sub _convert_to_db_item { - my $item = shift; - my $ret = { - inventoryID => $item->{inventoryID}->{UUID}, - assetID => $item->{assetID}->{UUID}, - assetType => $item->{assetType}, - invType => $item->{invType}, - parentFolderID => $item->{parentFolderID}->{UUID}, - avatarID => $item->{avatarID}->{UUID}, - creatorID => $item->{creatorsID}->{UUID}, # TODO: human error ??? - inventoryName => $item->{inventoryName}, - inventoryDescription => $item->{inventoryDescription} || "", - inventoryNextPermissions => $item->{inventoryNextPermissions}, - inventoryCurrentPermissions => $item->{inventoryCurrentPermissions}, - inventoryBasePermissions => $item->{inventoryBasePermissions}, - inventoryEveryOnePermissions => $item->{inventoryEveryOnePermissions}, - }; - return $ret; -} - -sub _convert_to_response_item { - my $item = shift; - my $ret = { - inventoryID => { UUID => $item->{inventoryID} }, - assetID => { UUID => $item->{assetID} }, - assetType => $item->{assetType}, - invType => $item->{invType}, - parentFolderID => { UUID => $item->{parentFolderID} }, - avatarID => { UUID => $item->{avatarID} }, - creatorsID => { UUID => $item->{creatorID} }, # TODO: human error ??? - inventoryName => $item->{inventoryName}, - inventoryDescription => $item->{inventoryDescription} || "", - inventoryNextPermissions => $item->{inventoryNextPermissions}, - inventoryCurrentPermissions => $item->{inventoryCurrentPermissions}, - inventoryBasePermissions => $item->{inventoryBasePermissions}, - inventoryEveryOnePermissions => $item->{inventoryEveryOnePermissions}, - }; - return $ret; -} - -sub _convert_to_db_folder { - my $folder = shift; - my $ret = { - folderName => $folder->{name}, - agentID => $folder->{agentID}->{UUID}, - parentFolderID => $folder->{parentID}->{UUID}, - folderID => $folder->{folderID}->{UUID}, - type => $folder->{type}, - version => $folder->{version}, - }; - return $ret; -} - -sub _convert_to_response_folder { - my $folder = shift; - my $ret = { - name => $folder->{folderName}, - agentID => { UUID => $folder->{agentID} }, - parentID => { UUID => $folder->{parentFolderID} }, - folderID => { UUID => $folder->{folderID} }, - type => $folder->{type}, - version => $folder->{version}, - }; - return $ret; -} - -sub _create_default_inventory { - my $uuid = shift; - - my @InventoryFolders = (); - my $root_folder_id = &OpenSim::Utility::GenerateUUID(); - - push @InventoryFolders, { - "folderID" => $root_folder_id, - "agentID" => $uuid, - "parentFolderID" => &OpenSim::Utility::ZeroUUID(), - "folderName" => "My Inventory", - "type" => 8, - "version" => 1, - }; - - push @InventoryFolders, { - "folderID" => &OpenSim::Utility::GenerateUUID(), - "agentID" => $uuid, - "parentFolderID" => $root_folder_id, - "folderName" => "Textures", - "type" => 0, - "version" => 1, - }; - - push @InventoryFolders, { - "folderID" => &OpenSim::Utility::GenerateUUID(), - "agentID" => $uuid, - "parentFolderID" => $root_folder_id, - "folderName" => "Objects", - "type" => 6, - "version" => 1, - }; - - push @InventoryFolders, { - "folderID" => &OpenSim::Utility::GenerateUUID(), - "agentID" => $uuid, - "parentFolderID" => $root_folder_id, - "folderName" => "Clothes", - "type" => 5, - "version" => 1, - }; - - return \@InventoryFolders; -} - - -# ################# -# Utilities -sub _get_uuid { - my $data = shift; - if ($data =~ /([^<]+)<\/guid>/) { - return $1; - } else { - Carp::croak("can not find uuid: $data"); - } -} - - -1; - -- cgit v1.1