UNPKG

@memberjunction/actions-bizapps-social

Version:

Social Media Actions for MemberJunction - Twitter, LinkedIn, Facebook, Instagram, TikTok, YouTube, HootSuite, Buffer

69 lines 3.13 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; import { RegisterClass } from '@memberjunction/global'; import { BufferBaseAction } from '../buffer-base.action.js'; import { BaseAction } from '@memberjunction/actions'; function formatChannel(channel) { return { id: channel.id, service: channel.service, displayName: channel.displayName, name: channel.name, type: channel.type, avatar: channel.avatar, timezone: channel.timezone, isDisconnected: channel.isDisconnected, isQueuePaused: channel.isQueuePaused, createdAt: channel.createdAt, serviceId: channel.serviceId, }; } function groupByService(channels) { return channels.reduce((acc, ch) => { const svc = ch.service || 'unknown'; acc[svc] = (acc[svc] || 0) + 1; return acc; }, {}); } /** * Retrieves all connected channels (formerly "profiles") for a Buffer organization. */ let BufferGetChannelsAction = class BufferGetChannelsAction extends BufferBaseAction { async InternalRunAction(params) { const { Params } = params; try { const authError = await this.ensureAuthenticated(params); if (authError) return authError; const organizationId = await this.resolveOrganizationId(Params); const channels = await this.fetchChannels(organizationId); const formatted = channels.map(formatChannel); const summary = { totalChannels: formatted.length, channelsByService: groupByService(formatted), disconnected: formatted.filter((c) => c.isDisconnected).length, }; this.setOutputParam(Params, 'Channels', formatted); this.setOutputParam(Params, 'Summary', summary); return { Success: true, ResultCode: 'SUCCESS', Message: `Retrieved ${formatted.length} Buffer channels`, Params }; } catch (error) { return this.buildErrorResult(error, 'get Buffer channels', Params); } } get Params() { return [...this.bufferCommonParams, { Name: 'Channels', Type: 'Output', Value: null }, { Name: 'Summary', Type: 'Output', Value: null }]; } get Description() { return 'Retrieves all Buffer channels (connected social media accounts) for the organization'; } }; BufferGetChannelsAction = __decorate([ RegisterClass(BaseAction, 'BufferGetChannelsAction') ], BufferGetChannelsAction); export { BufferGetChannelsAction }; //# sourceMappingURL=get-channels.action.js.map