-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMessageFilesManager.cfc
127 lines (105 loc) · 4.66 KB
/
MessageFilesManager.cfc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*
USAGE:
<cfscript>
// Create an instance of APICommunication
apiComm = new APICommunication();
// Create an instance of MessageFilesManager and pass apiComm to it
messageFilesManager = new MessageFilesManager(apiComm);
// Now you can use assistantManager to create an assistant
result = messageFilesManager.RetrieveMessageFile(threadId="Thread_ID", messageId="Message_ID", fileId="");
</cfscript>
*/
component {
property name="apiComm" type="APICommunication";
function init(APICommunication apiCommInstance) {
this.apiComm = apiCommInstance;
return this;
}
// Message Files Functions
///////////////////////////////////////////////////////////////////////////
// Function to retrieve a message file
function RetrieveMessageFile(threadId, messageId, fileId) {
var result = {};
var httpRequest = new cfhttp();
try {
// Input Validation
if (not isValid("string", threadId)) {
result.error = "Invalid input: Thread ID must be a valid string.";
apiComm.logError(result.error);
return result;
}
if (not isValid("string", messageId)) {
result.error = "Invalid input: Message ID must be a valid string.";
apiComm.logError(result.error);
return result;
}
if (not isValid("string", fileId)) {
result.error = "Invalid input: File ID must be a valid string.";
apiComm.logError(result.error);
return result;
}
// Set up HTTP request
apiComm.configureHttpRequest(httpRequest, "GET", "threads/#threadId#/messages/#messageId#/files/#fileId#", {});
var maxRetries = 3;
var httpResponse = apiComm.sendHttpRequest(httpRequest, maxRetries);
// Handle HTTP response
apiComm.handleHttpResponse(result, httpResponse);
// Check for errors
if (structKeyExists(result, "error")) {
// Log the error
apiComm.logError(result.error);
} else {
// Operation was successful, result.data contains the parsed JSON data
// You can use the data as needed
}
} catch (any e) {
// Log unexpected errors
apiComm.logError("An unexpected error occurred: " & e.getMessage());
result.error = "An unexpected error occurred: " & e.getMessage();
}
return result;
}
// Function to list message files
function ListMessageFiles(threadId, messageId, limit, order, after, before) {
var result = {};
var httpRequest = new cfhttp();
try {
// Input Validation
if (not isValid("string", threadId)) {
result.error = "Invalid input: Thread ID must be a valid string.";
apiComm.logError(result.error);
return result;
}
if (not isValid("string", messageId)) {
result.error = "Invalid input: Message ID must be a valid string.";
apiComm.logError(result.error);
return result;
}
// Construct query parameters
var queryParams = {};
if (isDefined("limit") and isNumeric(limit) and limit gte 1 and limit lte 100) queryParams["limit"] = limit;
if (isDefined("order") and (order eq "asc" or order eq "desc")) queryParams["order"] = order;
if (isDefined("after")) queryParams["after"] = after;
if (isDefined("before")) queryParams["before"] = before;
// Set up HTTP request
apiComm.configureHttpRequest(httpRequest, "GET", "threads/#threadId#/messages/#messageId#/files", queryParams);
var maxRetries = 3;
var httpResponse = apiComm.sendHttpRequest(httpRequest, maxRetries);
// Handle HTTP response
apiComm.handleHttpResponse(result, httpResponse);
// Check for errors
if (structKeyExists(result, "error")) {
// Log the error
apiComm.logError(result.error);
} else {
// Operation was successful, result.data contains the parsed JSON data
// You can use the data as needed
}
} catch (any e) {
// Log unexpected errors
apiComm.logError("An unexpected error occurred: " & e.getMessage());
result.error = "An unexpected error occurred: " & e.getMessage();
}
return result;
}
}