Get a Queue Member

👍

You're ready for this how-to guide if you've got the following:

A FreeClimb account
A registered application
A configured FreeClimb Number
Your tools and language installed


Node.js

Using the FreeClimb SDK, invoke an asynchronous request for a given queueId and userId (queueId and userId not given in example). Successful invocation returns the queued Call's metadata.

Create your package.json file and save in the root directory of your project:

{
  "name": "node-get-a-queue-member-how-to-guide",
  "version": "1.0.0",
  "license": "MIT",
  "dependencies": {
    "@freeclimb/sdk": "^3.8.0",
    "dotenv": "^8.1.0"
  }
}

Install the package by running the following in the command line/terminal:

yarn install

Example code:

require("dotenv").config();
const freeclimbSDK = require("@freeclimb/sdk");

const accountId = process.env.ACCOUNT_ID;
const apiKey = process.env.API_KEY;
const queueId = "your-queue-id";
const callId = "your-call-id";

const freeClimbConfig = freeclimbSDK.createConfiguration({
  accountId,
  apiKey,
});
const freeclimb = new freeclimbSDK.DefaultApi(freeClimbConfig);

freeclimb
  .getAMember(queueId, callId)
  .then((member) => {
    // Use the queue member
  })
  .catch((err) => {
    // Handle errors
  });

Java

After successfully creating the FreeClimbClient, invoke QueuesRequester to send a synchronous request providing both callId and queueId. Successful invocation of the get method returns the queued Call's metadata.

Create your build.gradle file and save it to the root directory in your project:

/*
 * This file was generated by the Gradle 'init' task.
 *
 * This is a general purpose Gradle build.
 * Learn how to create Gradle builds at https://guides.gradle.org/creating-new-gradle-builds
 */

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
  //Add the dependency
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:2.1.6.RELEASE"
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

bootJar {
    baseName = 'gs-spring-boot'
    version =  '0.1.0'
}

repositories {
    mavenCentral()
    maven { url 'https://jitpack.io' }
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile "org.springframework.boot:spring-boot-starter-web"
    testCompile "junit:junit"
    compile 'com.github.FreeClimbAPI:FreeClimb-Java-SDK:3.0.0'
}

sourceSets {
    main {
        java {
            srcDirs = ['src'] // changed line
        }
    }
}

Build the file by running the following in your terminal/command line:

gradle build

Example code:

import com.vailsys.freeclimb.api.FreeClimbClient;
import com.vailsys.freeclimb.api.FreeClimbException;
import com.vailsys.freeclimb.api.queue.member.Member;
public Member listQueueMember(String queueId, String callId) {
    try {
        // Create FreeClimbClient object
        // accountId & apiKey can be found under API credentials on the FreeClimb Dashboard
        FreeClimbClient client = new FreeClimbClient(accountId, apiKey);
         
        //Invoke get method to retrieve queued call metadata
        Member member = client.queues.getMembersRequester(queueId).get(callId);
         
        //Can examine CallId, DateEnqueued, Position, URI, and WaitTime for this member
        return member;
    }
    catch(FreeClimbException pe) {
        System.out.println(pe.getMessage());
    }
    return null;
}

C#

Using the QueuesRequester created upon successful creation of the FreeClimbClient a synchronous request for a callId and queueId pair is initiated. Successful invocation returns the queued Call's metadata.

Example code:

// Create FreeClimbClient object
// Your account ID & api key can be found under API credentials on the FreeClimb Dashboard
FreeClimbClient client = new FreeClimbClient(getFreeClimbAccountId(),
                                     getFreeClimbApiKey());
 
// Invoke get method to retrieve queued call metadata
QueueMember queueMember = client.getQueuesRequester.getQueueMember(queueId, callId);