status-im/status-go

View on GitHub
signal/events_discord_import.go

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
package signal

import (
    "github.com/status-im/status-go/protocol/discord"
)

const (

    // EventDiscordCategoriesAndChannelsExtracted triggered when categories and
    // channels for exported discord files have been successfully extracted
    EventDiscordCategoriesAndChannelsExtracted = "community.discordCategoriesAndChannelsExtracted"

    // EventDiscordCommunityImportProgress is triggered during the import
    // of a discord community as it progresses
    EventDiscordCommunityImportProgress = "community.discordCommunityImportProgress"

    // EventDiscordCommunityImportFinished triggered when importing
    // the discord community into status was successful
    EventDiscordCommunityImportFinished = "community.discordCommunityImportFinished"

    // EventDiscordCommunityImportCancelled triggered when importing
    // the discord community was cancelled
    EventDiscordCommunityImportCancelled = "community.discordCommunityImportCancelled"

    // EventDiscordCommunityImportCleanedUp triggered when the community has been cleaned up (deleted)
    EventDiscordCommunityImportCleanedUp = "community.discordCommunityImportCleanedUp"

    // EventDiscordChannelImportProgress is triggered during the import
    // of a discord community channel as it progresses
    EventDiscordChannelImportProgress = "community.discordChannelImportProgress"

    // EventDiscordChannelImportFinished triggered when importing
    // the discord community channel into status was successful
    EventDiscordChannelImportFinished = "community.discordChannelImportFinished"

    // EventDiscordChannelImportCancelled triggered when importing
    // the discord community channel was cancelled
    EventDiscordChannelImportCancelled = "community.discordChannelImportCancelled"
)

type DiscordCategoriesAndChannelsExtractedSignal struct {
    Categories             []*discord.Category             `json:"discordCategories"`
    Channels               []*discord.Channel              `json:"discordChannels"`
    OldestMessageTimestamp int64                           `json:"oldestMessageTimestamp"`
    Errors                 map[string]*discord.ImportError `json:"errors"`
}

type DiscordCommunityImportProgressSignal struct {
    ImportProgress *discord.ImportProgress `json:"importProgress"`
}

type DiscordCommunityImportFinishedSignal struct {
    CommunityID string `json:"communityId"`
}

type DiscordCommunityImportCancelledSignal struct {
    CommunityID string `json:"communityId"`
}

type DiscordCommunityImportCleanedUpSignal struct {
    CommunityID string `json:"communityId"`
}

type DiscordChannelImportProgressSignal struct {
    ImportProgress *discord.ImportProgress `json:"importProgress"`
}

type DiscordChannelImportFinishedSignal struct {
    CommunityID string `json:"communityId"`
    ChannelID   string `json:"channelId"`
}

type DiscordChannelImportCancelledSignal struct {
    ChannelID string `json:"channelId"`
}

func SendDiscordCategoriesAndChannelsExtracted(categories []*discord.Category, channels []*discord.Channel, oldestMessageTimestamp int64, errors map[string]*discord.ImportError) {
    send(EventDiscordCategoriesAndChannelsExtracted, DiscordCategoriesAndChannelsExtractedSignal{
        Categories:             categories,
        Channels:               channels,
        OldestMessageTimestamp: oldestMessageTimestamp,
        Errors:                 errors,
    })
}

func SendDiscordCommunityImportProgress(importProgress *discord.ImportProgress) {
    send(EventDiscordCommunityImportProgress, DiscordCommunityImportProgressSignal{
        ImportProgress: importProgress,
    })
}

func SendDiscordChannelImportProgress(importProgress *discord.ImportProgress) {
    send(EventDiscordChannelImportProgress, DiscordChannelImportProgressSignal{
        ImportProgress: importProgress,
    })
}

func SendDiscordCommunityImportFinished(communityID string) {
    send(EventDiscordCommunityImportFinished, DiscordCommunityImportFinishedSignal{
        CommunityID: communityID,
    })
}

func SendDiscordChannelImportFinished(communityID string, channelID string) {
    send(EventDiscordChannelImportFinished, DiscordChannelImportFinishedSignal{
        CommunityID: communityID,
        ChannelID:   channelID,
    })
}

func SendDiscordCommunityImportCancelled(communityID string) {
    send(EventDiscordCommunityImportCancelled, DiscordCommunityImportCancelledSignal{
        CommunityID: communityID,
    })
}

func SendDiscordCommunityImportCleanedUp(communityID string) {
    send(EventDiscordCommunityImportCleanedUp, DiscordCommunityImportCleanedUpSignal{
        CommunityID: communityID,
    })
}

func SendDiscordChannelImportCancelled(channelID string) {
    send(EventDiscordChannelImportCancelled, DiscordChannelImportCancelledSignal{
        ChannelID: channelID,
    })
}