Go
Go
MedTunnel: Send Message with File Attachment
See more MedTunnel Examples
Demonstrates the MedTunnel SendMessage method to send a message with a file attachment to one or more recipients.Chilkat Go Downloads
success := false
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := chilkat.NewHttp()
// Implements the following CURL command:
// curl https://server.medtunnel.com/MedTunnelMsg/api/Message/SendMessage -X POST -k
// -F "ApplicationId=yourApplicationId" -F "LocationId=yourLocationId"
// -F "MedTunnelId=yourMedTunnelId" -F "MedTunnelPassword=yourMedTunnelPassword"
// -F "To=recipientsMedTunnelId"
// -F "Body=Test of SendMessage"
// -F "file1=@qa_data/jpg/starfish.jpg"
// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code
req := chilkat.NewHttpRequest()
req.SetHttpVerb("POST")
req.SetPath("/MedTunnelMsg/api/Message/SendMessage")
req.SetContentType("multipart/form-data")
req.AddParam("ApplicationId","yourApplicationId")
req.AddParam("LocationId","yourLocationId")
req.AddParam("MedTunnelId","yourMedTunnelId")
req.AddParam("MedTunnelPassword","yourMedTunnelPassword")
req.AddParam("To","recipientsMedTunnelId")
req.AddParam("Body","Test")
success = req.AddFileForUpload2("file1","qa_data/jpg/starfish.jpg","application/octet-stream")
req.AddHeader("Expect","100-continue")
resp := chilkat.NewHttpResponse()
success = http.HttpSReq("server.medtunnel.com",443,true,req,resp)
if success == false {
fmt.Println(http.LastErrorText())
http.DisposeHttp()
req.DisposeHttpRequest()
resp.DisposeHttpResponse()
return
}
sbResponseBody := chilkat.NewStringBuilder()
resp.GetBodySb(sbResponseBody)
jResp := chilkat.NewJsonObject()
jResp.LoadSb(sbResponseBody)
jResp.SetEmitCompact(false)
fmt.Println("Response Body:")
fmt.Println(*jResp.Emit())
respStatusCode := resp.StatusCode()
fmt.Println("Response Status Code = ", respStatusCode)
if respStatusCode >= 400 {
fmt.Println("Response Header:")
fmt.Println(resp.Header())
fmt.Println("Failed.")
http.DisposeHttp()
req.DisposeHttpRequest()
resp.DisposeHttpResponse()
sbResponseBody.DisposeStringBuilder()
jResp.DisposeJsonObject()
return
}
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "ReturnCode": 1,
// "ReturnCodeText": "Success",
// "Data": "{\"Id\":989432,\"FromUserId\":36990,\"FromMailBoxId\":36965, ... \"SendGlobalNotifications\":false}"
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
ReturnCode := jResp.IntOf("ReturnCode")
ReturnCodeText := jResp.StringOf("ReturnCodeText")
Data := jResp.StringOf("Data")
// Load the Data into another JSON object and parse..
jsonData := chilkat.NewJsonObject()
jsonData.Load(*Data)
jsonData.SetEmitCompact(false)
fmt.Println(*jsonData.Emit())
// {
// "Id": 989448,
// "FromUserId": 36990,
// "FromMailBoxId": 36965,
// "FromUserType": 0,
// "FromUserName": "...",
// "FromUserFullName": "...",
// "FromUserAccountName": "...",
// "FromUserAccountTitle": "...",
// "ToUserId": 36990,
// "ToUserType": 1,
// "ToUserMailboxId": "36965",
// "ToUserName": "...",
// "ToUserFullName": "...",
// "EmailAddress": "",
// "Password": "",
// "Subject": "",
// "PatientMedTunnelId": "",
// "Body": "Test",
// "DateReceived": "4/29/2021 2:48:22 PM",
// "DisplayDateReceived": "04/29/2021 2:48 PM",
// "ViewCount": 0,
// "ViewedOn": "",
// "AttachmentCount": 1,
// "AttachmentNames": [
// {
// "MessageId": 989448,
// "Id": 424857,
// "Name": "starfish.jpg.35910fe9-4118-414c-a845-4d092ca6e784",
// "DisplayName": "starfish.jpg",
// "Size": 6229,
// "WasViewed": false,
// "ViewedOn": "",
// "ViewCount": 0,
// "Location": "Default"
// }
// ],
// "AllRecipients": [
// {
// "Id": 989448,
// "UserName": "...",
// "AccountId": 0,
// "AccountName": "...",
// "AccountTitle": "",
// "FirstName": "...",
// "LastName": "...",
// "EmailAddress": "",
// "LastSentOn": "",
// "SendCount": 0,
// "IsFavorite": false
// }
// ],
// "Status": 0,
// "ParentMessageId": 989448,
// "DistributionListId": 0,
// "DistributionListName": "",
// "BodyHistory": "",
// "ReadReceiptCallbackUrl": null,
// "SendGlobalNotifications": false
// }
var MessageId int
var Name *string = new(string)
Display var Name *string = new(string)
var Size int
var WasViewed bool
var Location *string = new(string)
User var Name *string = new(string)
var AccountId int
var AccountName *string = new(string)
var AccountTitle *string = new(string)
var FirstName *string = new(string)
var LastName *string = new(string)
var LastSentOn *string = new(string)
var SendCount int
var IsFavorite bool
Id := jsonData.IntOf("Id")
FromUserId := jsonData.IntOf("FromUserId")
FromMailBoxId := jsonData.IntOf("FromMailBoxId")
FromUserType := jsonData.IntOf("FromUserType")
FromUserName := jsonData.StringOf("FromUserName")
FromUserFullName := jsonData.StringOf("FromUserFullName")
FromUserAccountName := jsonData.StringOf("FromUserAccountName")
FromUserAccountTitle := jsonData.StringOf("FromUserAccountTitle")
ToUserId := jsonData.IntOf("ToUserId")
ToUserType := jsonData.IntOf("ToUserType")
ToUserMailboxId := jsonData.StringOf("ToUserMailboxId")
ToUserName := jsonData.StringOf("ToUserName")
ToUserFullName := jsonData.StringOf("ToUserFullName")
EmailAddress := jsonData.StringOf("EmailAddress")
Password := jsonData.StringOf("Password")
Subject := jsonData.StringOf("Subject")
PatientMedTunnelId := jsonData.StringOf("PatientMedTunnelId")
Body := jsonData.StringOf("Body")
DateReceived := jsonData.StringOf("DateReceived")
DisplayDateReceived := jsonData.StringOf("DisplayDateReceived")
ViewCount := jsonData.IntOf("ViewCount")
ViewedOn := jsonData.StringOf("ViewedOn")
AttachmentCount := jsonData.IntOf("AttachmentCount")
Status := jsonData.IntOf("Status")
ParentMessageId := jsonData.IntOf("ParentMessageId")
DistributionListId := jsonData.IntOf("DistributionListId")
DistributionListName := jsonData.StringOf("DistributionListName")
BodyHistory := jsonData.StringOf("BodyHistory")
ReadReceiptCallbackUrl := jsonData.StringOf("ReadReceiptCallbackUrl")
SendGlobalNotifications := jsonData.BoolOf("SendGlobalNotifications")
i := 0
count_i := jsonData.SizeOfArray("AttachmentNames")
for i < count_i {
jsonData.SetI(i)
MessageId = jsonData.IntOf("AttachmentNames[i].MessageId")
Id = jsonData.IntOf("AttachmentNames[i].Id")
Name = jsonData.StringOf("AttachmentNames[i].Name")
DisplayName = jsonData.StringOf("AttachmentNames[i].DisplayName")
Size = jsonData.IntOf("AttachmentNames[i].Size")
WasViewed = jsonData.BoolOf("AttachmentNames[i].WasViewed")
ViewedOn = jsonData.StringOf("AttachmentNames[i].ViewedOn")
ViewCount = jsonData.IntOf("AttachmentNames[i].ViewCount")
Location = jsonData.StringOf("AttachmentNames[i].Location")
i = i + 1
}
i = 0
count_i = jsonData.SizeOfArray("AllRecipients")
for i < count_i {
jsonData.SetI(i)
Id = jsonData.IntOf("AllRecipients[i].Id")
UserName = jsonData.StringOf("AllRecipients[i].UserName")
AccountId = jsonData.IntOf("AllRecipients[i].AccountId")
AccountName = jsonData.StringOf("AllRecipients[i].AccountName")
AccountTitle = jsonData.StringOf("AllRecipients[i].AccountTitle")
FirstName = jsonData.StringOf("AllRecipients[i].FirstName")
LastName = jsonData.StringOf("AllRecipients[i].LastName")
EmailAddress = jsonData.StringOf("AllRecipients[i].EmailAddress")
LastSentOn = jsonData.StringOf("AllRecipients[i].LastSentOn")
SendCount = jsonData.IntOf("AllRecipients[i].SendCount")
IsFavorite = jsonData.BoolOf("AllRecipients[i].IsFavorite")
i = i + 1
}
http.DisposeHttp()
req.DisposeHttpRequest()
resp.DisposeHttpResponse()
sbResponseBody.DisposeStringBuilder()
jResp.DisposeJsonObject()
jsonData.DisposeJsonObject()