Sample code for 30+ languages & platforms
Dart

MedTunnel: Login User

See more MedTunnel Examples

Authenticate and create a session for the User. This gets a user token to be used in the Authorization header for other API calls.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example assumes the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final http = CkHttp();

  // Implements the following CURL command:

  // curl -X PUT -k 
  //         -H "Content-Type: application/json" 
  //         -d '{        "MedTunnelId":"yourMedTunnelId@yourGroup",
  //                         "Password":"yourPassword",
  //                         "ApplicationId":"yourApplicationId",
  //                         "LocationId":"yourLocationId",
  //                         "ExpirationInMinutes":"50"
  //                 }'
  //         https://server.medtunnel.com/MedTunnelSvc/api/Authenticate/LoginUser

  // Use the following online tool to generate HTTP code from a CURL command
  // Convert a cURL Command to HTTP Source Code

  // Use this online tool to generate code from sample JSON:
  // Generate Code to Create JSON

  // The following JSON is sent in the request body.

  // {
  //   "MedTunnelId": "yourMedTunnelId@yourGroup",
  //   "Password": "yourPassword",
  //   "ApplicationId": "yourApplicationId",
  //   "LocationId": "yourLocationId",
  //   "ExpirationInMinutes": "50"
  // }

  final json = CkJsonObject();
  json.updateString('MedTunnelId', 'yourMedTunnelId@yourGroup');
  json.updateString('Password', 'yourPassword');
  json.updateString('ApplicationId', 'yourApplicationId');
  json.updateString('LocationId', 'yourLocationId');
  json.updateString('ExpirationInMinutes', '50');

  http.setRequestHeader('Content-Type', 'application/json');

  final sbRequestBody = CkStringBuilder();
  json.emitSb(sbRequestBody);

  final resp = CkHttpResponse();
  try {
    http.httpSb('PUT', 'https://server.medtunnel.com/MedTunnelSvc/api/Authenticate/LoginUser', sbRequestBody, 'utf-8', 'application/json', resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final sbResponseBody = CkStringBuilder();
  resp.getBodySb(sbResponseBody);
  final jResp = CkJsonObject();
  jResp.loadSb(sbResponseBody);
  jResp.emitCompact = false;

  print('Response Body:');
  print(jResp.emit());

  final respStatusCode = resp.statusCode;
  print('Response Status Code = $respStatusCode');
  if (respStatusCode >= 400) {
    print('Response Header:');
    print(resp.header);
    print('Failed.');
    return;
  }

  // Sample JSON response:
  // (Sample code for parsing the JSON response is shown below)

  // {
  //   "ReturnCode": 1,
  //   "ReturnCodeText": "Success",
  //   "Data": "{\"UserId\":36990,\"UserTypeId\":1, ... \"UserRole\":\"Account Admin\"}"
  // }

  // Sample code for parsing the JSON response...
  // Use the following online tool to generate parsing code from sample JSON:
  // Generate Parsing Code from JSON

  final returnCode = jResp.intOf('ReturnCode');
  final returnCodeText = jResp.stringOf('ReturnCodeText');
  final data = jResp.stringOf('Data');

  // Load the Data into another JSON object and parse..
  final jsonData = CkJsonObject();
  jsonData.load(data);
  jsonData.emitCompact = false;
  print(jsonData.emit());

  // Sample result.

  // {
  //   "UserId": 36990,
  //   "UserTypeId": 1,
  //   "UserTypeDesc": "Single Provider",
  //   "Token": "MT 730DCA95-2B86-4A91-994E-99995B1A6FC1:9999952A-C6DA-4FB5-83D6-9999E880B4A2:50:/hc3CTWCS0kNMxZXTWR4NQ==:tev2vAToTCrnuyT6rxyCgQ==:sAYcvgPoIfaaCF0+gdeSD1GFcYk=",
  //   "MailboxId": 36965,
  //   "UserRole": "Account Admin"
  // }

  final token = jsonData.stringOf('Token');
  print('Token: $token');
}