SITCommunicationManager

@interface SITCommunicationManager : NSObject

The Communication manager allows you to make asynchronous requests to the server, mostly to fetch data.

  • Call this method to receive a reference to an initialized object of this class

    Note

    You should not try to initialize multiple objects of this class using alloc:init because it would result in unexpected behaviour.

    Declaration

    Objective-C

    + (instancetype _Nonnull)sharedManager;

    Swift

    class func shared() -> Self

    Return Value

    The shared manager object. Initially, this method stablish a value of 24 hours as the CAHCE_MAX_AGE for the cache system.

  • Retrieve the time when data on cache was retrieved

    Declaration

    Objective-C

    - (NSDate *_Nullable)cacheDate;

    Swift

    func cacheDate() -> Date?

    Return Value

    the date when the information was successfully fetched or nil if there is not cache.

  • Establish the time when the stored data on cache expires

    Declaration

    Objective-C

    - (void)setCacheMaxAge:(NSInteger)cacheMaxAge;

    Swift

    func setCacheMaxAge(_ cacheMaxAge: Int)

    Parameters

    cacheMaxAge

    Integer value in seconds. If a negative value is inserted, a value of 0 will be established.

  • Retrieve the value when the stored data on cache expires.

    Declaration

    Objective-C

    - (NSInteger)cacheMaxAge;

    Swift

    func cacheMaxAge() -> Int

    Return Value

    Integer value in seconds.

  • Clear the contents of the cache for a particular user

    Declaration

    Objective-C

    - (void)clearCache;

    Swift

    func clearCache()
  • Retrieve the information of the available categories

    Note

    Valid options for this method are: SITForceRequestKey. The value of this key is a NSNumber with a bool value on it. The value of YES means that the request will be directed to the network system directly without checking the cache system. The value of NO means the request will be directed to the cache system and if not found it will be redirected to the network system.

    Declaration

    Objective-C

    - (BOOL)fetchCategoriesWithOptions:(NSDictionary *_Nullable)options
                        withCompletion:
                            (SITPOICategoriesFetchHandler _Nonnull)completion;

    Swift

    func fetchCategories(options: [AnyHashable : Any]? = nil, withCompletion completion: @escaping SITPOICategoriesFetchHandler) -> Bool

    Parameters

    options

    additional parameters to customize the internal operation of the method declared in SITCommunicationConstants.h

    completion

    the kind of block that will be performed after the operation has been completed

    Return Value

    BOOL value indicating if the operation will be performed or not

  • Retrieve the list of floors associated with a building

    Note

    Keys of the options dictionary: forceRequest boolean value that determines if the operation should hit the server (YES) or the cachesystem (NO)

    Declaration

    Objective-C

    - (NSError *_Nullable)
    fetchFloorsForBuilding:(NSString *_Nonnull)buildingIdentifier
               withOptions:(NSDictionary *_Nullable)options
                   success:(SITSuccessHandler _Nonnull)success
                   failure:(SITFailureCompletion _Nonnull)failure;

    Swift

    func fetchFloors(forBuilding buildingIdentifier: String, withOptions options: [AnyHashable : Any]? = nil, success: @escaping SITSuccessHandler, failure: @escaping SITFailureCompletion) -> Error?

    Parameters

    buildingIdentifier

    unique identifier of the building

    options

    parameters that modify the internal behaviour

    success

    the kind of block that will be executed when the operation has successfully been performed

    failure

    the kind of block that will be executed when the operation fails

    Return Value

    error that describes why the operation could not be executed (a nil value means the request is valid and will be executed)

  • Retrieve the list of users positioning in the building

    Note

    Keys of the options dictionary: forceRequest boolean value that determines if the operation should hit the server (YES) or the cachesystem (NO)

    Declaration

    Objective-C

    - (NSError *_Nullable)
    fetchRealTimeUsersForBuilding:(NSString *_Nonnull)buildingIdentifier
                      withOptions:(NSDictionary *_Nullable)options
                          success:(SITSuccessHandler _Nonnull)success
                          failure:(SITFailureCompletion _Nonnull)failure;

    Swift

    func fetchRealTimeUsers(forBuilding buildingIdentifier: String, withOptions options: [AnyHashable : Any]? = nil, success: @escaping SITSuccessHandler, failure: @escaping SITFailureCompletion) -> Error?

    Parameters

    buildingIdentifier

    unique identifier of the building

    options

    parameters that modify the internal behaviour

    success

    the kind of block that will be executed when the operation has successfully been performed

    failure

    the kind of block that will be executed when the operation fails

    Return Value

    error that describes why the operation could not be executed (a nil value means the request is valid and will be executed)

  • Retrieve the list of buildings

    Note

    Keys of the options dictionary: forceRequest boolean value that determines if the operation should hit the server (YES) or the cachesystem (NO)

    Declaration

    Objective-C

    - (NSError *_Nullable)
    fetchBuildingsWithOptions:(NSDictionary *_Nullable)options
                      success:(SITSuccessHandler _Nonnull)success
                      failure:(SITFailureCompletion _Nonnull)failure;

    Swift

    func fetchBuildings(options: [AnyHashable : Any]? = nil, success: @escaping SITSuccessHandler, failure: @escaping SITFailureCompletion) -> Error?

    Parameters

    options

    parameters that modify the internal behaviour

    success

    the kind of block that will be executed when the operation has successfully been performed. Information can be accessed through the results key on the mapping result dictionary

    failure

    the kind of block that will be executed when the operation fails with an error describing what has failed

    Return Value

    error that describes why the operation could not be executed (a nil value means the request is valid and will be executed)

  • Retrieve the list of indoor points of interest associated with a building

    Note

    Keys of the options dictionary: forceRequest boolean value that determines if the operation should hit the server (YES) or the cachesystem (NO)

    Declaration

    Objective-C

    - (NSError *_Nullable)fetchPoisOfBuilding:(NSString *_Nonnull)buildingIdentifier
                                  withOptions:(NSDictionary *_Nullable)options
                                      success:(SITSuccessHandler _Nonnull)success
                                      failure:
                                          (SITFailureCompletion _Nonnull)failure;

    Swift

    func fetchPois(ofBuilding buildingIdentifier: String, withOptions options: [AnyHashable : Any]? = nil, success: @escaping SITSuccessHandler, failure: @escaping SITFailureCompletion) -> Error?

    Parameters

    buildingIdentifier

    unique identifier of the building

    options

    parameters that modify the internal behaviour (see discussion section)

    success

    the kind of block that will be executed when the operation has successfully been performed. Information can be accessed through the results key on the mapping result dictionary

    failure

    the kind of block that will be executed when the operation fails with an error describing what has failed

    Return Value

    error that describes why the operation could not be executed (a nil value means the request is valid and will be executed)

  • Retrieve the list of outdoor points of interest associated with a building

    Note

    Keys of the options dictionary: forceRequest boolean value that determines if the operation should hit the server (YES) or the cachesystem (NO)

    Declaration

    Objective-C

    - (NSError *_Nullable)
    fetchOutdoorPoisOfBuilding:(NSString *_Nonnull)buildingIdentifier
                   withOptions:(NSDictionary *_Nullable)options
                       success:(SITSuccessHandler _Nonnull)success
                       failure:(SITFailureCompletion _Nonnull)failure;

    Swift

    func fetchOutdoorPois(ofBuilding buildingIdentifier: String, withOptions options: [AnyHashable : Any]? = nil, success: @escaping SITSuccessHandler, failure: @escaping SITFailureCompletion) -> Error?

    Parameters

    buildingIdentifier

    unique identifier of the building

    options

    parameters that modify the internal behaviour (see discussion section)

    success

    the kind of block that will be executed when the operation has successfully been performed. Information can be accessed through the results key on the mapping result dictionary

    failure

    the kind of block that will be executed when the operation fails with an error describing what has failed

    Return Value

    error that describes why the operation could not be executed (a nil value means the request is valid and will be executed)

  • Retrieve the information of a building.

    Note

    Keys of the options dictionary: forceRequest boolean value that determines if the operation should hit the server (YES) or the cachesystem (NO)

    Declaration

    Objective-C

    - (NSError *_Nullable)fetchBuildingInfo:(NSString *_Nonnull)buildingIdentifier
                                withOptions:(NSDictionary *_Nullable)options
                                    success:(SITSuccessHandler _Nonnull)success
                                    failure:(SITFailureCompletion _Nonnull)failure;

    Swift

    func fetchBuildingInfo(_ buildingIdentifier: String, withOptions options: [AnyHashable : Any]? = nil, success: @escaping SITSuccessHandler, failure: @escaping SITFailureCompletion) -> Error?

    Parameters

    buildingIdentifier

    unique identifier of the building.

    options

    parameters that modify the internal behaviour (see discussion section)

    success

    the kind of block that will be executed when the operation has successfully been performed. Information can be accessed through the results key on the mapping result dictionary

    failure

    failure the kind of block that will be executed when the operation fails with an error describing what has failed

    Return Value

    error that describes why the operation could not be executed (a nil value means the request is valid and will be executed)

  • Retrieve the floorplan of a floor

    Declaration

    Objective-C

    - (BOOL)fetchMapFromFloor:(SITFloor *_Nonnull)floor
               withCompletion:(SITImageFetchHandler _Nonnull)imageFetchHandler;

    Swift

    func fetchMap(from floor: SITFloor, withCompletion imageFetchHandler: @escaping SITImageFetchHandler) -> Bool

    Parameters

    floor

    SITFloor object

    imageFetchHandler

    the kind of block that will be executed when the operation has successfully been performed (a nil data would mean the operation has failed)

    Return Value

    error that describes why the operation could not be executed (a nil value means the request is valid and will be executed)

  • Retrieve the contents of an icon of a category

    Declaration

    Objective-C

    - (BOOL)fetchSelected:(BOOL)selected
          iconForCategory:(SITPOICategory *_Nonnull)category
           withCompletion:(SITPOICategoryIconFetchCompletion _Nonnull)completion;

    Swift

    func fetchSelected(_ selected: Bool, iconFor category: SITPOICategory, withCompletion completion: @escaping SITPOICategoryIconFetchCompletion) -> Bool

    Parameters

    selected

    BOOL parameter indicating the kind of icon to retrieve (YES means the selected one, NO means the regular or normal one)

    category

    SITPOICategory object. Normally you do not instantiate objects of this class, instead you should use the one obtained by -fetchCategoriesWithCompletion:

    completion

    the kind of callback that will be called after the operation has been completed

    Return Value

    BOOL value indicating if the operation is well formed and if it will be executed (YES) or not (NO)

  • Retrieve the events of a SITBuilding

    Note

    Valid options for this method are: SITForceRequestKey. The value of this key is a NSNumber with a bool value on it. The value of YES means that the request will be directed to the network system directly without checking the cache system. The value of NO means the request will be directed to the cache system and if not found it will be redirected to the network system.

    Declaration

    Objective-C

    - (BOOL)fetchEventsFromBuilding:(SITBuilding *_Nonnull)building
                        withOptions:(NSDictionary *_Nullable)options
                     withCompletion:(SITHandler _Nonnull (^_Nonnull)(
                                        NSArray<SITEvent *> *_Nullable,
                                        NSError *_Nullable))completion;

    Swift

    func fetchEvents(from building: SITBuilding, withOptions options: [AnyHashable : Any]? = nil, withCompletion completion: @escaping ([SITEvent]?, Error?) -> SITHandler) -> Bool

    Parameters

    building

    SITBuilding object

    options

    additional parameters to customize the internal operation of the method

    completion

    SITHandler

    Return Value

    This method gives the user a flag that indicates if the operation has been performed or not.

  • Retrieve the events of a SITBuilding

    Note

    Valid options for this method are: SITForceRequestKey. The value of this key is a NSNumber with a bool value on it. The value of YES means that the request will be directed to the network system directly without checking the cache system. The value of NO means the request will be directed to the cache system and if not found it will be redirected to the network system.

    Declaration

    Objective-C

    - (BOOL)fetchEventsFromBuilding:(SITBuilding *_Nonnull)building
                     withCompletion:(SITHandler _Nonnull (^_Nonnull)(
                                        NSArray<SITEvent *> *_Nullable,
                                        NSError *_Nullable))completion;

    Swift

    func fetchEvents(from building: SITBuilding, withCompletion completion: @escaping ([SITEvent]?, Error?) -> SITHandler) -> Bool

    Parameters

    building

    SITBuilding object

    completion

    SITHandler

    Return Value

    This method gives the user a flag that indicates if the operation has been performed or not.

  • Retrieve the geofences of a SITBuilding

    Declaration

    Objective-C

    - (NSError *_Nullable)
    fetchGeofencesFromBuilding:(SITBuilding *_Nonnull)building
                   withOptions:(NSDictionary *_Nullable)options
                withCompletion:(SITHandler _Nonnull)completion;

    Swift

    func fetchGeofences(from building: SITBuilding, withOptions options: [AnyHashable : Any]? = nil, withCompletion completion: @escaping SITHandler) -> Error?

    Parameters

    building

    Building from which we want to retrieve the geofences

    options

    Additional parameters to customize the internal operation of the method

    completion

    SITHandler

    Note

    Valid options for this method are: SITForceRequestKey. The value of this key is a NSNumber with a bool value on it. The value of YES means that the request will be directed to the network system directly without checking the cache system. The value of NO means the request will be directed to the cache system and if not found it will be redirected to the network system.

    Return Value

    This method gives the user a flag that indicates if the operation has been performed or not.

  • Notifies an event occurrence

    Declaration

    Objective-C

    - (BOOL)createOccurrenceForEvent:(SITEvent *_Nonnull)event
                         withSuccess:
                             (SITOccurrenceCompletion _Nonnull)successCompletion
                             failure:(SITErrorCompletion _Nonnull)errorCompletion;

    Swift

    func createOccurrence(for event: SITEvent, withSuccess successCompletion: @escaping SITOccurrenceCompletion, failure errorCompletion: @escaping SITErrorCompletion) -> Bool

    Parameters

    event

    The event that occurred

    successCompletion

    completion block that will be executed if the operation is performed

    errorCompletion

    completion block that will be executed if the operation fails

    Return Value

    BOOL Returns a flag that indicates if the operation has been performed or not.

  • Notifies an event occurrence

    Declaration

    Objective-C

    - (BOOL)updateOccurrence:(SITOccurrence *_Nonnull)occurrence
                    forEvent:(kSITOccurrenceAction)action
                 withSuccess:(SITOccurrenceCompletion _Nonnull)successCompletion
                     failure:(SITErrorCompletion _Nonnull)errorCompletion;

    Swift

    func update(_ occurrence: SITOccurrence, forEvent action: kSITOccurrenceAction, withSuccess successCompletion: @escaping SITOccurrenceCompletion, failure errorCompletion: @escaping SITErrorCompletion) -> Bool

    Parameters

    occurrence

    event occurrence

    action

    action performed on the event

    successCompletion

    completion block that will be executed if the operation is performed

    errorCompletion

    completion block that will be executed if the operation fails

    Return Value

    BOOL Returns a flag that indicates if the operation has been performed or not.

  • Authenticate with user and password

    Note

    This method needs to be called before performing any other network operation in order to validate the credentials. Otherwise the operations could failed with a 401 error code. Before attempting to connect with different credentials remeber to disconnect to the actual session performing a -logoutWithCompletion: operation.

    Declaration

    Objective-C

    - (BOOL)loginWithUser:(NSString *_Nonnull)user
                 password:(NSString *_Nonnull)password
           withCompletion:(SITLoginHandler _Nonnull)loginHandler;

    Swift

    func login(withUser user: String, password: String, withCompletion loginHandler: @escaping SITLoginHandler) -> Bool

    Parameters

    user

    email of the user

    password

    password of the user

    loginHandler

    completion block that will be executed if the operation is performed

    Return Value

    This method gives the user a flag that indicates if the operation has been performed (YES) or not (NO).

  • Disconnect and clear previous session credentials

    Declaration

    Objective-C

    - (BOOL)logoutWithCompletion:(SITLogoutHandler _Nonnull)logoutHandler;

    Swift

    func logout(completion logoutHandler: @escaping SITLogoutHandler) -> Bool

    Parameters

    logoutHandler

    completion block that will be executed if the operation if performed.

    Return Value

    This method gives the user a flag that indicates if the operation has been performed (YES) or not (NO).