Files
firebase-ios-sdk/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.h
T
Maksym Malyhin 27384c0a2c FirebaseInstallations: CreateInstallation API request error handling (#4024)
* Unrecoverable errors: basic unit tests defined.

* Registration Error models introduced.

* Storage: storage version handling fix.

* Formatting.

* Get Installation: return registration error from previous attempt.

* Retry registration request on configuration change.

* Store unrecoverable registration error.

* FIRInstallations Swift API improvements.

* Add Swift integration tests

* Revert "Add Swift integration tests"

This reverts commit a8e06418be.

* Invalid config integration tests and fixes.

* Missing tests and cleanup.

* ./scripts/style.sh

* Log messages.

* More elaborative log message. Typo.

* Reorganize imports and umberella header to fix Swift compilation errors.

* Formatting.
2019-10-09 13:47:58 -04:00

62 lines
2.1 KiB
Objective-C

/*
* Copyright 2019 Google
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <Foundation/Foundation.h>
@class FBLPromise<ValueType>;
@class FIRInstallationsItem;
NS_ASSUME_NONNULL_BEGIN
/**
* The class is responsible for interacting with HTTP REST API for Installations.
*/
@interface FIRInstallationsAPIService : NSObject
@property(nonatomic, readonly) NSString *APIKey;
@property(nonatomic, readonly) NSString *projectID;
/**
* The default initializer.
* @param APIKey The Firebase project API key (see `FIROptions.APIKey`).
* @param projectID The Firebase project ID (see `FIROptions.projectID`).
*/
- (instancetype)initWithAPIKey:(NSString *)APIKey projectID:(NSString *)projectID;
/**
* Sends a request to register a new FID to get auth and refresh tokens.
* @param installation The `FIRInstallationsItem` instance with the FID to register.
* @return A promise that is resolved with a new `FIRInstallationsItem` instance with valid tokens.
* It is rejected with an error in case of a failure.
*/
- (FBLPromise<FIRInstallationsItem *> *)registerInstallation:(FIRInstallationsItem *)installation;
- (FBLPromise<FIRInstallationsItem *> *)refreshAuthTokenForInstallation:
(FIRInstallationsItem *)installation;
/**
* Sends a request to delete the installation, related auth tokens and all related data from the
* server.
* @param installation The installation to delete.
* @return Returns a promise that is resolved with the passed installation on successful deletion or
* is rejected with an error otherwise.
*/
- (FBLPromise<FIRInstallationsItem *> *)deleteInstallation:(FIRInstallationsItem *)installation;
@end
NS_ASSUME_NONNULL_END