6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell/*
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * The contents of this file are subject to the terms of the Common Development and
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * Distribution License (the License). You may not use this file except in compliance with the
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * License.
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell *
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * specific language governing permission and limitations under the License.
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell *
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * When distributing Covered Software, include this CDDL Header Notice in each file and include
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * Header, with the fields enclosed by brackets [] replaced by your own identifying
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * information: "Portions copyright [year] [name of copyright owner]".
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell *
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * Copyright 2016 ForgeRock AS.
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell */
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell#import "FRAPushMechanism.h"
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell@implementation FRAPushMechanism
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell
415243fbc81341293a852ff6aa14e9608d08685cCraig McDonnell#pragma mark -
415243fbc81341293a852ff6aa14e9608d08685cCraig McDonnell#pragma mark Lifecyle
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell
9ebd9a731316dfd624ce3bcc4ea6519d10899936Ken Stubbings
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott// Testing only?
f877f6ca2428244a6d0954a1dbef471577b32c60Diego Colantoni- (instancetype)initWithDatabase:(FRAIdentityDatabase *)database identityModel:(FRAIdentityModel *)identityModel {
f877f6ca2428244a6d0954a1dbef471577b32c60Diego Colantoni return [self initWithDatabase:database identityModel:identityModel authEndpoint:nil secret:nil version:1 mechanismIdentifier:[NSUUID UUID].UUIDString];
9ebd9a731316dfd624ce3bcc4ea6519d10899936Ken Stubbings}
9ebd9a731316dfd624ce3bcc4ea6519d10899936Ken Stubbings
f877f6ca2428244a6d0954a1dbef471577b32c60Diego Colantoni- (instancetype)initWithDatabase:(FRAIdentityDatabase *)database identityModel:(FRAIdentityModel *)identityModel authEndpoint:(NSString *)authEndPoint secret:(NSString *)secret {
f877f6ca2428244a6d0954a1dbef471577b32c60Diego Colantoni return [self initWithDatabase:database identityModel:identityModel authEndpoint:authEndPoint secret:secret version:1 mechanismIdentifier:[NSUUID UUID].UUIDString];
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott}
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott
f877f6ca2428244a6d0954a1dbef471577b32c60Diego Colantoni- (instancetype)initWithDatabase:(FRAIdentityDatabase *)database identityModel:(FRAIdentityModel *)identityModel authEndpoint:(NSString *)authEndPoint secret:(NSString *)secret version:(NSInteger)version mechanismIdentifier:(NSString *)mechanismIdentifier{
f877f6ca2428244a6d0954a1dbef471577b32c60Diego Colantoni self = [super initWithDatabase:database identityModel:identityModel];
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell if (self) {
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott _version = version;
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott _authEndpoint = authEndPoint;
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott _secret = secret;
465ea459a87d4605e145d8f45b6a9c104b696e3bCraig McDonnell _mechanismUID = mechanismIdentifier;
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell }
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell return self;
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell}
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott// Testing only?
f877f6ca2428244a6d0954a1dbef471577b32c60Diego Colantoni+ (instancetype)pushMechanismWithDatabase:(FRAIdentityDatabase *)database identityModel:(FRAIdentityModel *)identityModel {
f877f6ca2428244a6d0954a1dbef471577b32c60Diego Colantoni return [[FRAPushMechanism alloc] initWithDatabase:database identityModel:identityModel];
415243fbc81341293a852ff6aa14e9608d08685cCraig McDonnell}
415243fbc81341293a852ff6aa14e9608d08685cCraig McDonnell
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott
f877f6ca2428244a6d0954a1dbef471577b32c60Diego Colantoni+ (instancetype)pushMechanismWithDatabase:(FRAIdentityDatabase *)database identityModel:(FRAIdentityModel *)identityModel authEndpoint:(NSString *)authEndPoint secret:(NSString *)secret version:(NSInteger)version mechanismIdentifier:(NSString *)mechanismIdentifier{
f877f6ca2428244a6d0954a1dbef471577b32c60Diego Colantoni return [[FRAPushMechanism alloc] initWithDatabase:database identityModel:identityModel authEndpoint:authEndPoint secret:secret version:version mechanismIdentifier:mechanismIdentifier];
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott}
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott
f877f6ca2428244a6d0954a1dbef471577b32c60Diego Colantoni+ (instancetype)pushMechanismWithDatabase:(FRAIdentityDatabase *)database identityModel:(FRAIdentityModel *)identityModel authEndpoint:(NSString *)authEndPoint secret:(NSString *)secret {
f877f6ca2428244a6d0954a1dbef471577b32c60Diego Colantoni return [[FRAPushMechanism alloc] initWithDatabase:database identityModel:identityModel authEndpoint:authEndPoint secret:secret];
9ebd9a731316dfd624ce3bcc4ea6519d10899936Ken Stubbings}
9ebd9a731316dfd624ce3bcc4ea6519d10899936Ken Stubbings
caa9e77dc369fea8df9ae2c598d3c83b7214c1cfDiego Colantoni+ (NSString *)mechanismType {
caa9e77dc369fea8df9ae2c598d3c83b7214c1cfDiego Colantoni return @"push";
caa9e77dc369fea8df9ae2c598d3c83b7214c1cfDiego Colantoni}
caa9e77dc369fea8df9ae2c598d3c83b7214c1cfDiego Colantoni
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell@end