| Requires any of the roles: | Agent, Administrator, Agent, Administrator, Agent, Administrator |
| PUT,OPTIONS | /v1/Chat/{ChatId} | ||
|---|---|---|---|
| GET,POST,OPTIONS | /v1/Chat |
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
class ChatMember implements IConvertible
{
String? ChatMemberId;
String? ChatId;
String? UserId;
bool? IsActive;
bool? IsArchived;
String? LastChatMessageId;
String? ChatMemberName;
ChatMember({this.ChatMemberId,this.ChatId,this.UserId,this.IsActive,this.IsArchived,this.LastChatMessageId,this.ChatMemberName});
ChatMember.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ChatMemberId = json['ChatMemberId'];
ChatId = json['ChatId'];
UserId = json['UserId'];
IsActive = json['IsActive'];
IsArchived = json['IsArchived'];
LastChatMessageId = json['LastChatMessageId'];
ChatMemberName = json['ChatMemberName'];
return this;
}
Map<String, dynamic> toJson() => {
'ChatMemberId': ChatMemberId,
'ChatId': ChatId,
'UserId': UserId,
'IsActive': IsActive,
'IsArchived': IsArchived,
'LastChatMessageId': LastChatMessageId,
'ChatMemberName': ChatMemberName
};
getTypeName() => "ChatMember";
TypeContext? context = _ctx;
}
class Chat implements IConvertible
{
String? ChatId;
String? ChatName;
String? CreatedBy;
DateTime? DateCreated;
List<ChatMember>? ChatMembers = [];
bool? IsArchived;
int? MemberCount;
int? MessageCount;
int? UnreadCount;
String? CreatedByName;
Chat({this.ChatId,this.ChatName,this.CreatedBy,this.DateCreated,this.ChatMembers,this.IsArchived,this.MemberCount,this.MessageCount,this.UnreadCount,this.CreatedByName});
Chat.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ChatId = json['ChatId'];
ChatName = json['ChatName'];
CreatedBy = json['CreatedBy'];
DateCreated = JsonConverters.fromJson(json['DateCreated'],'DateTime',context!);
ChatMembers = JsonConverters.fromJson(json['ChatMembers'],'List<ChatMember>',context!);
IsArchived = json['IsArchived'];
MemberCount = json['MemberCount'];
MessageCount = json['MessageCount'];
UnreadCount = json['UnreadCount'];
CreatedByName = json['CreatedByName'];
return this;
}
Map<String, dynamic> toJson() => {
'ChatId': ChatId,
'ChatName': ChatName,
'CreatedBy': CreatedBy,
'DateCreated': JsonConverters.toJson(DateCreated,'DateTime',context!),
'ChatMembers': JsonConverters.toJson(ChatMembers,'List<ChatMember>',context!),
'IsArchived': IsArchived,
'MemberCount': MemberCount,
'MessageCount': MessageCount,
'UnreadCount': UnreadCount,
'CreatedByName': CreatedByName
};
getTypeName() => "Chat";
TypeContext? context = _ctx;
}
class ChatResponse implements IConvertible
{
ResponseStatus? ResponseStatus;
List<Chat>? Chat = [];
ChatResponse({this.ResponseStatus,this.Chat});
ChatResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
Chat = JsonConverters.fromJson(json['Chat'],'List<Chat>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
'Chat': JsonConverters.toJson(Chat,'List<Chat>',context!)
};
getTypeName() => "ChatResponse";
TypeContext? context = _ctx;
}
class ChatRequest implements IConvertible
{
String? ChatId;
Chat? Chat;
ChatRequest({this.ChatId,this.Chat});
ChatRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ChatId = json['ChatId'];
Chat = JsonConverters.fromJson(json['Chat'],'Chat',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ChatId': ChatId,
'Chat': JsonConverters.toJson(Chat,'Chat',context!)
};
getTypeName() => "ChatRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'ChatMember': TypeInfo(TypeOf.Class, create:() => ChatMember()),
'Chat': TypeInfo(TypeOf.Class, create:() => Chat()),
'List<ChatMember>': TypeInfo(TypeOf.Class, create:() => <ChatMember>[]),
'ChatResponse': TypeInfo(TypeOf.Class, create:() => ChatResponse()),
'List<Chat>': TypeInfo(TypeOf.Class, create:() => <Chat>[]),
'ChatRequest': TypeInfo(TypeOf.Class, create:() => ChatRequest()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/Chat HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ChatId: 00000000000000000000000000000000,
Chat:
{
ChatId: 00000000000000000000000000000000,
ChatName: String,
CreatedBy: 00000000000000000000000000000000,
DateCreated: 0001-01-01,
ChatMembers:
[
{
ChatMemberId: 00000000000000000000000000000000,
ChatId: 00000000000000000000000000000000,
UserId: 00000000000000000000000000000000,
IsActive: False,
IsArchived: False,
LastChatMessageId: 00000000000000000000000000000000,
ChatMemberName: String
}
],
IsArchived: False,
MemberCount: 0,
MessageCount: 0,
UnreadCount: 0,
CreatedByName: String
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
Chat:
[
{
ChatId: 00000000000000000000000000000000,
ChatName: String,
CreatedBy: 00000000000000000000000000000000,
DateCreated: 0001-01-01,
ChatMembers:
[
{
ChatMemberId: 00000000000000000000000000000000,
ChatId: 00000000000000000000000000000000,
UserId: 00000000000000000000000000000000,
IsActive: False,
IsArchived: False,
LastChatMessageId: 00000000000000000000000000000000,
ChatMemberName: String
}
],
IsArchived: False,
MemberCount: 0,
MessageCount: 0,
UnreadCount: 0,
CreatedByName: String
}
]
}