spect8_client 1.0.2
spect8_client: ^1.0.2 copied to clipboard
Official client for Spect8 chat services.Spect8-chat SDK for Flutter, adds an awesome expansion to Flutter's cross-platform applications.
example/spect8_client_example.dart
import 'package:spect8_client/spect8_client.dart';
Future<void> main() async {
final spect8Client = Spect8Client();
/// Connect User
TenantManager tenantManager = await spect8Client.connectDemoUser(
demoUserId: 'some-user-id',
tenantId: 'id-of-tenant',
);
/// Tenant Manager:
///
/// To fetch all available broadcasts.
await tenantManager.getAllBroadcasts();
/// To create a new broadcast
await tenantManager.createBroadcast(broadcastName: 'test name');
/// To get a specific broadcast having some broadcast name.
await tenantManager.getBroadcast(broadcastName: 'test name');
/// Broadcast Manager:
///
/// To get a broadcast manager which is used for operations related to a specific broadcast.
BroadcastManager broadcastManager =
tenantManager.getBroadcastManager(broadcastId: 'id-of-broadcast');
/// To get all available channels, In all available broadcasts.
await tenantManager.getAllChannels();
/// To get all the pinned messages that are pinned across tenant
await tenantManager.getAllPinnedMessages();
/// Channel Manager:
///
/// To get a channel manager which is used for operations related to a specific broadcast.
ChannelManager channelManager =
broadcastManager.getChannelManager(channelId: 'id-of-channel');
/// To get all messages pinned in this channel.
await channelManager.getPinnedMessages();
/// To get the count of active users on channel .
await channelManager.getActiveUserCount();
/// To get a list of active user on channel .
await channelManager.getActiveUsers();
/// To get a stream of ChannelActions of the channel which can be used to update messages list.
await channelManager.subscribeUser();
/// Unsubcribe a user from specefic channel.
await channelManager.unSubscribeUser();
/// To Send keep alive signal to the backend.
await channelManager.keepAlive();
///To send a message in the channel.
await channelManager.sendMessage(content: 'your message');
/// Poll Manager:
///
/// To get a poll manager which is used for operations related to a specific poll.
PollManager pollManager =
broadcastManager.getPollManager(pollId: 'id-of-poll');
/// To save poll vote.
var pollAnswer = PollAnswer(
userSubmission: true,
answerId: null,
voteCount: 0,
value: 'value',
image: null,
authorDisplayName: null,
);
PollVoteRequest(pollAnswer: pollAnswer);
/// To delete poll vote by vote id.
await pollManager.deletePollVoteById(voteId: 'id-of-vote');
/// Get vote for specific user
await pollManager.getPollVotes(userId: 'id-of-user');
/// Disclaimer Manager
///
/// To get a disclaimer manager which is used for operations related to a specific disclaimer.
DisclaimerManager disclaimerManager =
tenantManager.getDisclaimerManager(disclaimerId: 'id-of-disclaimer');
/// To delete the disclaimer.
await disclaimerManager.deleteDisclaimer();
/// Ad Manager
///
AdManager adManager = tenantManager.getAdManager(adId: 'id-of-ad');
/// To get the ads.
await adManager.getAd();
/// Report Manager
///
ReportManager reportManager =
tenantManager.getReportManager(reportId: 'id-of-report');
/// To delete the report.
await reportManager.deleteReport();
/// Shop-Category Manager
///
ShopCategoryManager shopCategoriesManager =
tenantManager.getShopCategoryManager(categoryId: 'id-of-category');
/// Get all items for a shop category
List<ShopItem> items = await shopCategoriesManager.getItems();
///Shop-Item Manager
///
ShopItemManager shopItemManager =
shopCategoriesManager.getItemManager(itemId: items[0].id);
shopItemManager.categoryId;
/// Current User Manager
///
CurrentUserManager currentUserManager = tenantManager.getCurrentUserManager();
/// Get list of blocked user
List<BlockedUser> blockedUsers = await currentUserManager.getBlockedUsers();
blockedUsers.length;
/// To get the theme Config of Current User
ThemeConfigData themeConfigData =
await currentUserManager.getThemeConfigOfCurrentUser();
themeConfigData.id;
}