Skip to content

IdentityProviderKeys should contains optional attributes #3

@luca-davanzo

Description

@luca-davanzo

Actual code:

public class IdentityProviderKeys {
    
    public var aruba: String
    public var etna: String
    public var infocamere: String
    public var infocert: String
    public var intesi: String
    public var lepida: String
    public var namirial: String
    public var poste: String
    public var sielte: String
    public var spiditalia: String
    public var teamsystem: String
    public var tim: String
    
    public init(aruba: String, etna: String, infocamere: String, infocert: String, intesi: String, lepida: String, namirial: String, poste: String, sielte: String, spiditalia: String, teamsystem: String, tim: String) {
        self.aruba = aruba
        self.etna = etna
        self.infocamere = infocamere
        self.infocert = infocert
        self.intesi = intesi
        self.lepida = lepida
        self.namirial = namirial
        self.poste = poste
        self.sielte = sielte
        self.spiditalia = spiditalia
        self.teamsystem = teamsystem
        self.tim = tim
    }
    
}

There are cases where we may want to exclude some providers, so I would define string attributes optional.

Also, is there any logical reason to shuffle identity provider array items?

struct IdentityProviderViewModel {
    let identityProviderKeys: IdentityProviderKeys
    
    // Returns the list of providers that is generated by the identity provider object
    func generateProviders() -> [Provider]{
        return [
            Provider(name: IdentityProviderConstants.aruba.rawValue, idp: identityProviderKeys.aruba),
            Provider(name: IdentityProviderConstants.etna.rawValue, idp: identityProviderKeys.etna),
            Provider(name: IdentityProviderConstants.infocamere.rawValue, idp: identityProviderKeys.infocamere),
            Provider(name: IdentityProviderConstants.infocert.rawValue, idp: identityProviderKeys.infocert),
            Provider(name: IdentityProviderConstants.intesi.rawValue, idp: identityProviderKeys.intesi),
            Provider(name: IdentityProviderConstants.lepida.rawValue, idp: identityProviderKeys.lepida),
            Provider(name: IdentityProviderConstants.namirial.rawValue, idp: identityProviderKeys.namirial),
            Provider(name: IdentityProviderConstants.poste.rawValue, idp: identityProviderKeys.poste),
            Provider(name: IdentityProviderConstants.sielte.rawValue, idp: identityProviderKeys.sielte),
            Provider(name: IdentityProviderConstants.spiditalia.rawValue, idp: identityProviderKeys.spiditalia),
            Provider(name: IdentityProviderConstants.teamsystem.rawValue, idp: identityProviderKeys.teamsystem),
            Provider(name: IdentityProviderConstants.tim.rawValue, idp: identityProviderKeys.tim)
        ].shuffled()
    }
    
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions