Activity Operations

Core Data Models

Activity Action (ActivityAction)

action.id: String                          // Action identifier
action.type: ActionsEnum                   // Action type
action.timestamp: Kotlinx_datetimeInstant  // Action timestamp
action.context: ActivityContext?           // Action context
action.content: Content?                   // Action content

Activity Response (ActivityResponseBody)

response.id: String                        // Activity identifier
response.points: Int32?                    // Points earned
response.status: String?                   // Activity status

Activity Operations

Add Activity

do {
    let tags = [Tag(id: "tag1", name: "Football")]
    let content = Content(/* content data */)
    let campaign = Campaign(/* campaign data */)

    let response = try await sdk.activity().add(
        action: ActionsEnum.view,
        tags: tags,
        content: content,
        campaign: campaign
    )
    print("Activity added: \(response.id)")
} catch {
    print("Error adding activity: \(error)")
}

Add Click Ad Activity

do {
    let tags = [Tag(id: "ad1", name: "Advertisement")]

    let response = try await sdk.activity().addClickAd(
        tags: tags,
        content: nil,
        campaign: nil
    )
    print("Click ad activity added: \(response.id)")
} catch {
    print("Error adding click ad activity: \(error)")
}

Get Activities for User

do {
    let filters = UserActivityFilters(
        action: ActionsEnum.view,
        limit: 20,
        page: 1
    )

    let activities = try await sdk.activity().getActivitiesForUser(
        userId: "user123",
        filters: filters,
        disableCache: false
    )
    print("User activities fetched")
} catch {
    print("Error fetching user activities: \(error)")
}

Get Own Activities

do {
    let activities = try await sdk.activity().getOwnActivities(
        action: ActionsEnum.prediction,
        limit: 50,
        page: 1,
        disableCache: false
    )
    print("Own activities fetched")
} catch {
    print("Error fetching own activities: \(error)")
}

Discussions API

Core Data Models

Discussion Model (Discussion)

discussion.id: String                      // Discussion identifier
discussion.title: String                   // Discussion title
discussion.description: String?            // Discussion description
discussion.type: DiscussionType?           // Discussion type
discussion.status: DiscussionStatus?       // Discussion status
discussion.context: DiscussionContext?     // Discussion context
discussion.stats: DiscussionStats?         // Discussion statistics
discussion.createdAt: Kotlinx_datetimeInstant? // Creation timestamp

Discussion Comment (DiscussionComment)

comment.id: String                         // Comment identifier
comment.content: String                    // Comment content
comment.authorId: String                   // Author identifier
comment.discussionId: String               // Discussion identifier
comment.createdAt: Kotlinx_datetimeInstant? // Creation timestamp
comment.reactions: [Reaction]?             // Comment reactions

Create Post Model (CreatePost)

post.content: String                       // Post content
post.parentId: String?                     // Parent post ID (for replies)
post.mentions: [String]?                   // Mentioned user IDs