Use service catalog
[pithos-macos] / pithos-macos / PithosAccount.h
index 0055211..2972271 100644 (file)
@@ -38,6 +38,7 @@
 #import <Foundation/Foundation.h>
 @class PithosSyncDaemon;
 @class ASIPithos;
+@class ASIPithosRequest;
 @class PithosAccountNode;
 @class PithosSharingAccountsNode;
 
@@ -45,6 +46,7 @@
     NSString *uniqueName;
     BOOL active;
     NSString *name;
+    NSString *clientVersion;
     
     BOOL syncActive;
     NSString *syncDirectoryPath;
     BOOL syncSkipHidden;
     NSDate *syncLastCompleted;
     PithosSyncDaemon *syncDaemon;
-        
-    // Base for all necessary URLs, default "https://pithos.okeanos.grnet.gr"
-    NSString *serverURL;
-    // Appended to serverURL to get storageURLPrefix and authURL, default "v1"
-    // Can be overriden by setting directly storageURLPrefix and authURL
-    NSString *versionResource;
-    // Appended to serverURL to get loginURLPrefix, default "login"
-    // Can be overriden by setting directly loginURLPrefix
-    NSString *loginResource;
-    // Appended to serverURL to get publicURLPrefix, default nil
-    // Can be overriden by setting directly publicURLPrefix
-    NSString *publicResource;
-
-    NSString *authUser;
+    
+    NSString *authURLString;
+    NSString *pithosObjectStoreURLString;
+    NSString *astakosAccountURLString;
+    NSString *astakosWebloginURLString;
+    BOOL manual;
+    
     NSString *authToken;
-    NSString *storageURLPrefix;
-    NSString *authURL;
-    NSString *publicURLPrefix;
-    NSString *loginURLPrefix;
+    NSString *authUser;
+    NSMutableDictionary *userCatalog;
+    
+    BOOL ignoreSSLErrors;
     
     ASIPithos *pithos;
     PithosAccountNode *accountNode;
@@ -83,6 +78,7 @@
 @property (nonatomic, strong) NSString *uniqueName;
 @property (assign) BOOL active;
 @property (nonatomic, strong) NSString *name;
+@property (nonatomic, strong) NSString *clientVersion;
 
 @property (nonatomic, assign) BOOL syncActive;
 @property (nonatomic, strong) NSString *syncDirectoryPath;
 @property (nonatomic, strong) NSDate *syncLastCompleted;
 @property (nonatomic, strong) PithosSyncDaemon *syncDaemon;
 
-@property (nonatomic, strong) NSString *serverURL;
-@property (strong) NSString *versionResource;
-@property (strong) NSString *loginResource;
-@property (strong) NSString *publicResource;
+@property (nonatomic, strong) NSString *authURLString;
+@property (nonatomic, strong) NSString *pithosObjectStoreURLString;
+@property (nonatomic, strong) NSString *astakosAccountURLString;
+@property (nonatomic, strong) NSString *astakosWebloginURLString;
+@property (nonatomic, assign) BOOL manual;
 
-@property (nonatomic, strong) NSString *authUser;
 @property (nonatomic, strong) NSString *authToken;
-@property (nonatomic, strong) NSString *storageURLPrefix;
-@property (nonatomic, strong) NSString *authURL;
-@property (nonatomic, strong) NSString *publicURLPrefix;
-@property (nonatomic, strong) NSString *loginURLPrefix;
+@property (nonatomic, strong) NSString *authUser;
+@property (nonatomic, strong) NSMutableDictionary *userCatalog;
+
+@property (nonatomic, assign) BOOL ignoreSSLErrors;
 
 @property (strong, readonly) ASIPithos *pithos;
 @property (readonly) PithosAccountNode *accountNode;
 @property (readonly) PithosSharingAccountsNode *sharingAccountsNode;
 
+@property (nonatomic, readonly) NSString *tokensURL;
+@property (nonatomic, readonly) NSString *storageURLPrefix;
+@property (nonatomic, readonly) NSString *loginURL;
+@property (nonatomic, readonly) NSString *userCatalogURL;
+@property (nonatomic, readonly) NSString *publicURLPrefix;
+
 + (id)pithosAccount;
 
-- (BOOL)urlIsValid:(NSString *)urlString;
-- (void)authenticateWithServerURL:(NSString *)aServerURL authUser:(NSString *)anAuthUser authToken:(NSString *)anAuthToken;
-- (void)loginWithServerURL:(NSString *)aServerURL;
-- (void)updateSyncWithSyncActive:(BOOL)aSyncActive 
+- (void)updateWithAuthURLString:(NSString *)anAuthURLString
+     pithosObjectStoreURLString:(NSString *)aPithosObjectStoreURLString
+        astakosAccountURLString:(NSString *)anAstakosAccountURLString
+       astakosWebloginURLString:(NSString *)anAstakosWebloginURLString
+                         manual:(BOOL)aManual
+                      authToken:(NSString *)anAuthToken
+                       authUser:(NSString *)anAuthUser
+                ignoreSSLErrors:(BOOL)anIgnoreSSLErrors;
+- (void)updateSyncWithSyncActive:(BOOL)aSyncActive
                syncDirectoryPath:(NSString *)aSyncDirectoryPath 
           syncAccountsDictionary:(NSMutableDictionary *)aSyncAccountsDictionary 
                   syncSkipHidden:(BOOL)aSyncSkipHidden;
+- (NSMutableDictionary *)servicesFromServiceCatalogRequest:(ASIPithosRequest *)serviceCatalogRequest;
+- (void)updateServicesFromServiceCatalogRequest:(ASIPithosRequest *)serviceCatalogRequest;
+- (ASIPithosRequest *)updateUserCatalogForDisplaynames:(NSArray *)displaynames UUIDs:(NSArray *)UUIDs;
+- (NSString *)displaynameForUUID:(NSString *)UUID safe:(BOOL)safe;
+- (NSString *)displaynameForUUID:(NSString *)UUID;
 
 @end