diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Server/Handlers/Inventory/InventoryServerInConnector.cs | 42 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs | 8 |
2 files changed, 46 insertions, 4 deletions
diff --git a/OpenSim/Server/Handlers/Inventory/InventoryServerInConnector.cs b/OpenSim/Server/Handlers/Inventory/InventoryServerInConnector.cs index 3354b84..c74c431 100644 --- a/OpenSim/Server/Handlers/Inventory/InventoryServerInConnector.cs +++ b/OpenSim/Server/Handlers/Inventory/InventoryServerInConnector.cs | |||
@@ -85,6 +85,14 @@ namespace OpenSim.Server.Handlers.Inventory | |||
85 | "POST", "/GetInventory/", GetUserInventory, CheckAuthSession)); | 85 | "POST", "/GetInventory/", GetUserInventory, CheckAuthSession)); |
86 | 86 | ||
87 | m_httpServer.AddStreamHandler( | 87 | m_httpServer.AddStreamHandler( |
88 | new RestDeserialiseSecureHandler<Guid, Dictionary<AssetType, InventoryFolderBase>>( | ||
89 | "GET", "/SystemFolders/", GetSystemFolders, CheckAuthSession)); | ||
90 | |||
91 | m_httpServer.AddStreamHandler( | ||
92 | new RestDeserialiseSecureHandler<Guid, InventoryCollection>( | ||
93 | "POST", "/GetFolderContent/", GetFolderContent, CheckAuthSession)); | ||
94 | |||
95 | m_httpServer.AddStreamHandler( | ||
88 | new RestDeserialiseSecureHandler<InventoryFolderBase, bool>( | 96 | new RestDeserialiseSecureHandler<InventoryFolderBase, bool>( |
89 | "POST", "/UpdateFolder/", m_InventoryService.UpdateFolder, CheckAuthSession)); | 97 | "POST", "/UpdateFolder/", m_InventoryService.UpdateFolder, CheckAuthSession)); |
90 | 98 | ||
@@ -155,6 +163,40 @@ namespace OpenSim.Server.Handlers.Inventory | |||
155 | return m_InventoryService.GetUserInventory(userID); | 163 | return m_InventoryService.GetUserInventory(userID); |
156 | } | 164 | } |
157 | 165 | ||
166 | public Dictionary<AssetType, InventoryFolderBase> GetSystemFolders(Guid guid) | ||
167 | { | ||
168 | UUID userID = new UUID(guid); | ||
169 | return GetSystemFolders(userID); | ||
170 | } | ||
171 | |||
172 | // This shouldn't be here, it should be in the inventory service. | ||
173 | // But I don't want to deal with types and dependencies for now. | ||
174 | private Dictionary<AssetType, InventoryFolderBase> GetSystemFolders(UUID userID) | ||
175 | { | ||
176 | InventoryFolderBase root = m_InventoryService.GetRootFolder(userID); | ||
177 | if (root != null) | ||
178 | { | ||
179 | InventoryCollection content = m_InventoryService.GetFolderContent(userID, root.ID); | ||
180 | if (content != null) | ||
181 | { | ||
182 | Dictionary<AssetType, InventoryFolderBase> folders = new Dictionary<AssetType, InventoryFolderBase>(); | ||
183 | foreach (InventoryFolderBase folder in content.Folders) | ||
184 | { | ||
185 | if ((folder.Type != (short)AssetType.Folder) && (folder.Type != (short)AssetType.Unknown)) | ||
186 | folders[(AssetType)folder.Type] = folder; | ||
187 | } | ||
188 | return folders; | ||
189 | } | ||
190 | } | ||
191 | m_log.WarnFormat("[INVENTORY SERVICE]: System folders for {0} not found", userID); | ||
192 | return new Dictionary<AssetType, InventoryFolderBase>(); | ||
193 | } | ||
194 | |||
195 | public InventoryCollection GetFolderContent(Guid guid) | ||
196 | { | ||
197 | return m_InventoryService.GetFolderContent(UUID.Zero, new UUID(guid)); | ||
198 | } | ||
199 | |||
158 | public List<InventoryItemBase> GetFolderItems(Guid folderID) | 200 | public List<InventoryItemBase> GetFolderItems(Guid folderID) |
159 | { | 201 | { |
160 | List<InventoryItemBase> allItems = new List<InventoryItemBase>(); | 202 | List<InventoryItemBase> allItems = new List<InventoryItemBase>(); |
diff --git a/OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs b/OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs index 3b15831..4837c0d 100644 --- a/OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs +++ b/OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs | |||
@@ -165,8 +165,8 @@ namespace OpenSim.Services.Connectors | |||
165 | { | 165 | { |
166 | try | 166 | try |
167 | { | 167 | { |
168 | return SynchronousRestSessionObjectPoster<string, Dictionary<AssetType, InventoryFolderBase>>.BeginPostObject( | 168 | return SynchronousRestSessionObjectPoster<Guid, Dictionary<AssetType, InventoryFolderBase>>.BeginPostObject( |
169 | "GET", m_ServerURI + "/SystemFolders/", userID, sessionID.ToString(), userID.ToString()); | 169 | "GET", m_ServerURI + "/SystemFolders/", new Guid(userID), sessionID.ToString(), userID.ToString()); |
170 | } | 170 | } |
171 | catch (Exception e) | 171 | catch (Exception e) |
172 | { | 172 | { |
@@ -187,8 +187,8 @@ namespace OpenSim.Services.Connectors | |||
187 | { | 187 | { |
188 | try | 188 | try |
189 | { | 189 | { |
190 | return SynchronousRestSessionObjectPoster<UUID, InventoryCollection>.BeginPostObject( | 190 | return SynchronousRestSessionObjectPoster<Guid, InventoryCollection>.BeginPostObject( |
191 | "GET", m_ServerURI + "/GetFolderContents/", folderID, sessionID.ToString(), userID.ToString()); | 191 | "POST", m_ServerURI + "/GetFolderContent/", folderID.Guid, sessionID.ToString(), userID.ToString()); |
192 | } | 192 | } |
193 | catch (Exception e) | 193 | catch (Exception e) |
194 | { | 194 | { |