Sample code for 30+ languages & platforms
DataFlex

Example: Secrets.SecretSpecToJson method

Demonstrates the SecretSpecToJson method. This method converts a secret specification string to the JSON required to create or lookup the secret.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoSecrets
    Variant vJson
    Handle hoJson
    String sSspec
    String sTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatSecrets)) To hoSecrets
    If (Not(IsComObjectCreated(hoSecrets))) Begin
        Send CreateComObject of hoSecrets
    End
    Get Create (RefClass(cComChilkatJsonObject)) To hoJson
    If (Not(IsComObjectCreated(hoJson))) Begin
        Send CreateComObject of hoJson
    End
    Set ComEmitCompact Of hoJson To False

    // A secret name can include up to 4 components:
    // [appName] / service / [domain] / username

    // This example will demonstrate secret specification strings
    // for each possible combination.

    // ------------------------------------------------------
    // 1: service + username
    Move "!!imap|john@example.com" To sSspec

    Get pvComObject of hoJson to vJson
    Get ComSecretSpecToJson Of hoSecrets sSspec vJson To iSuccess
    Get ComEmit Of hoJson To sTemp1
    Showln sTemp1

    // Result:
    // {
    //   "service": "imap",
    //   "username": "john@example.com"
    // }

    // ------------------------------------------------------
    // 2: appName + service + username
    Move "!!myApp|imap|john@example.com" To sSspec

    Get pvComObject of hoJson to vJson
    Get ComSecretSpecToJson Of hoSecrets sSspec vJson To iSuccess
    Get ComEmit Of hoJson To sTemp1
    Showln sTemp1

    // Result:
    // {
    //   "appName": "myApp",
    //   "service": "imap",
    //   "username": "john@example.com"
    // }

    // ------------------------------------------------------
    // 3: service + domain + username
    Move "!!|imap|imap.example.com|john" To sSspec

    Get pvComObject of hoJson to vJson
    Get ComSecretSpecToJson Of hoSecrets sSspec vJson To iSuccess
    Get ComEmit Of hoJson To sTemp1
    Showln sTemp1

    // Result:
    // {
    //   "service": "imap",
    //   "domain": "imap.example.com",
    //   "username": "john"
    // }

    // ------------------------------------------------------
    // 4: appName + service + domain + username
    Move "!!myApp|imap|imap.example.com|john" To sSspec

    Get pvComObject of hoJson to vJson
    Get ComSecretSpecToJson Of hoSecrets sSspec vJson To iSuccess
    Get ComEmit Of hoJson To sTemp1
    Showln sTemp1

    // Result:
    // {
    //   "appName": "myApp",
    //   "service": "imap",
    //   "domain": "imap.example.com",
    //   "username": "john"
    // }


End_Procedure