Skip to content

Discussion ​

Discussions and messages: sync, edit, react, mute, and start meetings.

Endpoints ​

EndpointArgumentsReturns
v2.discussion.filesdiscussionId, optionsunknown
v2.discussion.meet.startObjectIdboolean
v2.discussion.message.deleteObjectId, ObjectIdboolean
v2.discussion.message.editObjectId, ObjectId, unknown, optionsboolean
v2.discussion.message.focusoptionsobject
v2.discussion.message.getObjectIdunknown
v2.discussion.message.reactObjectId, ObjectId, unknownboolean
v2.discussion.messagesoptionsunknown
v2.discussion.muteObjectId, unknownboolean
v2.discussion.starObjectIdobject
v2.discussion.syncoptionsobject

v2.discussion.files ​

Description

Undocumented

This endpoint has no description in the source yet.

Parameters

Argument 1 (discussionId, required): discussionId

Argument 2 (object, optional):

FieldTypeRequiredDescription
limitnumberno
skipnumberno
searchstringno

Example

javascript
const { Client } = require('@hailer/cli');

const client = await Client.create({
  host: 'https://api.hailer.com',
  username: 'you@example.com',
  password: '••••••',
});

const result = await client.request('v2.discussion.files', [
  '507f1f77bcf86cd799439011', // discussionId (required)
  {
    limit: 0,
    skip: 0,
  },
]);
console.log(result);

Returns

Undocumented

The return value is not described in the source yet.

Auth: requires an authenticated session.

Errors: on failure returns the standard Hailer error object { code, msg, details?, retryAfter?, debug? }. retryAfter is a delay in milliseconds.

v2.discussion.meet.start ​

Description

DEPRECATED: Use v3.videoCall.join instead.

Send message

Send a message to a discussion

Emits signal messenger.new({ discussion, uid, msg_id, msg_type: "user" | "??" })

Parameters

Argument 1 (ObjectId, required): discussionId

Example

javascript
const { Client } = require('@hailer/cli');

const client = await Client.create({
  host: 'https://api.hailer.com',
  username: 'you@example.com',
  password: '••••••',
});

const result = await client.request('v2.discussion.meet.start', [
  '507f1f77bcf86cd799439011', // ObjectId (required)
]);
console.log(result);

Returns

boolean

Auth: requires an authenticated session.

Errors: on failure returns the standard Hailer error object { code, msg, details?, retryAfter?, debug? }. retryAfter is a delay in milliseconds.

v2.discussion.message.delete ​

Description

Mark message as deleted.

Parameters

Argument 1 (ObjectId, required): discussionId

Argument 2 (ObjectId, required): messageId

Example

javascript
const { Client } = require('@hailer/cli');

const client = await Client.create({
  host: 'https://api.hailer.com',
  username: 'you@example.com',
  password: '••••••',
});

const result = await client.request('v2.discussion.message.delete', [
  '507f1f77bcf86cd799439011', // ObjectId (required)
  '507f1f77bcf86cd799439011', // ObjectId (required)
]);
console.log(result);

Returns

boolean

Auth: requires an authenticated session.

Errors: on failure returns the standard Hailer error object { code, msg, details?, retryAfter?, debug? }. retryAfter is a delay in milliseconds.

v2.discussion.message.edit ​

Description

Edit message text

Parameters

Argument 1 (ObjectId, required): discussionId

Argument 2 (ObjectId, required): messageId

Argument 3 (string, required): message text

Argument 4 (object, optional):

FieldTypeRequiredDescription
scheduleTimetimestampnoTime (milliseconds since 1970-01-01 UTC)
scheduledbooleanno
linksobject[]noSee below.
filesfileId[]no
replyToObjectIdnomessageId
forwardMessageIdObjectIdnomessageId

links[] (object):

FieldTypeRequiredDescription
targetObjectIdno
typereaction | tag | linked-to | in_process | user-mention | apple-id | feed.lastseenno
targetTypestringno
sourceTypefeedPost | messageno

Example

javascript
const { Client } = require('@hailer/cli');

const client = await Client.create({
  host: 'https://api.hailer.com',
  username: 'you@example.com',
  password: '••••••',
});

const result = await client.request('v2.discussion.message.edit', [
  '507f1f77bcf86cd799439011', // ObjectId (required)
  '507f1f77bcf86cd799439011', // ObjectId (required)
  'string', // message text (required)
  {
    scheduleTime: Date.now(), // Time (milliseconds since 1970-01-01 UTC)
    scheduled: false,
  },
]);
console.log(result);

Returns

boolean

Auth: requires an authenticated session.

Errors: on failure returns the standard Hailer error object { code, msg, details?, retryAfter?, debug? }. retryAfter is a delay in milliseconds.

v2.discussion.message.focus ​

Description

Load messages around specified message

Parameters

Argument 1 (object, required):

FieldTypeRequiredDescription
messageIdObjectIdnoMessage id
discussionIdanyno
nextMessageCountnumbernoHow many newer messages should be loaded, defaults to zero Default: 0.
previousMessageCountnumbernoHow many older messages should be loaded, defaults to zero Default: 0.
includeFocusMessagebooleannoHides the given message if wanted, defaults to true Default: true.

Example

javascript
const { Client } = require('@hailer/cli');

const client = await Client.create({
  host: 'https://api.hailer.com',
  username: 'you@example.com',
  password: '••••••',
});

const result = await client.request('v2.discussion.message.focus', [
  {
    messageId: '507f1f77bcf86cd799439011', // Message id
    discussionId: '...',
  },
]);
console.log(result);

Returns

FieldTypeRequiredDescription
newestLoadedbooleanno
oldestLoadedbooleanno
messagesobject[]noSee below.
oldestCursorObjectIdnomessageId
newestCursorObjectIdnomessageId

messages[] (object):

FieldTypeRequiredDescription
_idObjectIdyesMessage id
createdtimestampyesTimestamp of when the message was sent
updatedtimestampnoTimestamp of when the message was last updated
removedtimestampnoTimestamp of when the message was deleted
editedtimestampnoTimestamp of when the message last edited
locobjectnoMessage location data
fromuserIdnoSender user id
uiduserIdnoSender user id
discussiondiscussionIdnoDiscussion id
typestringnoType of the message One of: user, user.join, user.leave, activity.created, activity.updated, activity.removed, linked.activity.created, linked.activity.moved, event.new, event.updated, event.removed, event.going, event.notgoing, event.attend_response, discussion.invites, discussion.removesinvites, meet.start, meet.end, ball.passed, ball.passed_by, ball.taken, ball.cleared, ball.auto_assigned, collapsed.
metastring[] | object | stringnoMeta data of the message
msgstringnoThe contents of the message
taggedobjectno
_metasobjectnoSee below.
localIdentifierstringno
replyToObjectIdnoId of the reply message
replyMessageobjectnoReply message
reactionsRecord<string, string[]>noMessage user reactions
starsobject[]noSee below.
isStarredbooleanno
linkedDataarrayno
scheduledbooleanno
cidWorkspaceIdnoworkspaceId (former networkId)
deleteAtDatenoDate after which the message should be automatically deleted (BSON Date for MongoDB TTL)
forwardMessageobjectno
filesobject[]noSee below.

messages[]._metas (object):

FieldTypeRequiredDescription
filesRecord<string, object>noSee below.

messages[]._metas.files.* (object):

FieldTypeRequiredDescription
_idObjectIdno
hashbinaryno
uidObjectIdyes
lengthnumberno
namestringno
createdtimestampyesTime (milliseconds since 1970-01-01 UTC)
updatedtimestampnoTime (milliseconds since 1970-01-01 UTC)
removedtimestampnoSoft-delete timestamp; set when a DigiOne user deletes the file
typestringyesMIME file type
isPicturebooleanno
isVideobooleanno
isPublicbooleanno
fileSetsObjectId[]no
tagsstring[]no
cidWorkspaceIdnoWorkspace scope. Absent for legacy (unscoped) files; immutable once set
readersstring[]noACL of a workspace-scoped file
dimensionsobjectno

messages[].stars[] (object):

FieldTypeRequiredDescription
creatednumberno
uiduserIdnouserId

messages[].files[] (object):

FieldTypeRequiredDescription
_idObjectIdno
hashbinaryno
uidObjectIdyes
lengthnumberno
namestringno
createdtimestampyesTime (milliseconds since 1970-01-01 UTC)
updatedtimestampnoTime (milliseconds since 1970-01-01 UTC)
removedtimestampnoSoft-delete timestamp; set when a DigiOne user deletes the file
typestringyesMIME file type
isPicturebooleanno
isVideobooleanno
isPublicbooleanno
fileSetsObjectId[]no
tagsstring[]no
cidWorkspaceIdnoWorkspace scope. Absent for legacy (unscoped) files; immutable once set
readersstring[]noACL of a workspace-scoped file
dimensionsobjectnoSee below.

messages[].files[].dimensions (object):

FieldTypeRequiredDescription
heightnumberno
widthnumberno
aspectRationumberno

Auth: requires an authenticated session.

Errors: on failure returns the standard Hailer error object { code, msg, details?, retryAfter?, debug? }. retryAfter is a delay in milliseconds.

v2.discussion.message.get ​

Description

Get single message

Parameters

Argument 1 (ObjectId, required): messageId

Example

javascript
const { Client } = require('@hailer/cli');

const client = await Client.create({
  host: 'https://api.hailer.com',
  username: 'you@example.com',
  password: '••••••',
});

const result = await client.request('v2.discussion.message.get', [
  '507f1f77bcf86cd799439011', // ObjectId (required)
]);
console.log(result);

Returns

Undocumented

The return value could not be introspected from the source.

Auth: requires an authenticated session.

Errors: on failure returns the standard Hailer error object { code, msg, details?, retryAfter?, debug? }. retryAfter is a delay in milliseconds.

v2.discussion.message.react ​

Description

React to message with five different reactions

Parameters

Argument 1 (ObjectId, required): discussionId

Argument 2 (ObjectId, required): messageId

Argument 3 (string, optional): reactions

Example

javascript
const { Client } = require('@hailer/cli');

const client = await Client.create({
  host: 'https://api.hailer.com',
  username: 'you@example.com',
  password: '••••••',
});

const result = await client.request('v2.discussion.message.react', [
  '507f1f77bcf86cd799439011', // ObjectId (required)
  '507f1f77bcf86cd799439011', // ObjectId (required)
  'string', // reactions
]);
console.log(result);

Returns

boolean

Auth: requires an authenticated session.

Errors: on failure returns the standard Hailer error object { code, msg, details?, retryAfter?, debug? }. retryAfter is a delay in milliseconds.

v2.discussion.messages ​

Description

Undocumented

This endpoint has no description in the source yet.

Parameters

Argument 1 (object, optional):

FieldTypeRequiredDescription
discussionObjectIdyesDiscussion Id
limitboolean | numberno
skipnumbernoSkip n messages Default: 0.

Example

javascript
const { Client } = require('@hailer/cli');

const client = await Client.create({
  host: 'https://api.hailer.com',
  username: 'you@example.com',
  password: '••••••',
});

const result = await client.request('v2.discussion.messages', [
  {
    discussion: '507f1f77bcf86cd799439011', // Discussion Id
  },
]);
console.log(result);

Returns

Undocumented

The return value is not described in the source yet.

Auth: requires an authenticated session.

Errors: on failure returns the standard Hailer error object { code, msg, details?, retryAfter?, debug? }. retryAfter is a delay in milliseconds.

v2.discussion.mute ​

Description

Mute discussion

When muted push notifications are not sent.

Parameters

Argument 1 (ObjectId, required): discussionId

Argument 2 (integer, required): duration - Mute duration in minutes, set to 0 to unmute.

Example

javascript
const { Client } = require('@hailer/cli');

const client = await Client.create({
  host: 'https://api.hailer.com',
  username: 'you@example.com',
  password: '••••••',
});

const result = await client.request('v2.discussion.mute', [
  '507f1f77bcf86cd799439011', // ObjectId (required)
  0, // duration - Mute duration in minutes, set to 0 to unmute. (required)
]);
console.log(result);

Returns

boolean

Auth: requires an authenticated session.

Errors: on failure returns the standard Hailer error object { code, msg, details?, retryAfter?, debug? }. retryAfter is a delay in milliseconds.

v2.discussion.star ​

Description

Undocumented

This endpoint has no description in the source yet.

Parameters

Argument 1 (ObjectId, required):

Example

javascript
const { Client } = require('@hailer/cli');

const client = await Client.create({
  host: 'https://api.hailer.com',
  username: 'you@example.com',
  password: '••••••',
});

const result = await client.request('v2.discussion.star', [
  '507f1f77bcf86cd799439011', // ObjectId (required)
]);
console.log(result);

Returns

FieldTypeRequiredDescription
isStarredbooleanyes

Auth: requires an authenticated session.

Errors: on failure returns the standard Hailer error object { code, msg, details?, retryAfter?, debug? }. retryAfter is a delay in milliseconds.

v2.discussion.sync ​

Description

Undocumented

This endpoint has no description in the source yet.

Parameters

Argument 1 (object, required):

FieldTypeRequiredDescription
timestamptimestampyesTime (milliseconds since 1970-01-01 UTC)

Example

javascript
const { Client } = require('@hailer/cli');

const client = await Client.create({
  host: 'https://api.hailer.com',
  username: 'you@example.com',
  password: '••••••',
});

const result = await client.request('v2.discussion.sync', [
  {
    timestamp: Date.now(), // Time (milliseconds since 1970-01-01 UTC)
  },
]);
console.log(result);

Returns

FieldTypeRequiredDescription
starreddiscussionId[]no
discussionsany[]no
messagesany[]no
removeddiscussionId[]no
last_seenobjectno
muteddiscussionId[]no
unread_countsobjectno
checkedDateno

Auth: requires an authenticated session.

Errors: on failure returns the standard Hailer error object { code, msg, details?, retryAfter?, debug? }. retryAfter is a delay in milliseconds.

Hailer Developer Documentation · v1.8.0