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?, debug? }.

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?, debug? }.

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?, debug? }.

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
linksarrayno
filesfileId[]no
replyToObjectIdnomessageId
forwardMessageIdObjectIdnomessageId

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?, debug? }.

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[]no
oldestCursorObjectIdnomessageId
newestCursorObjectIdnomessageId

Auth: requires an authenticated session.

Errors: on failure returns the standard Hailer error object { code, msg, details?, debug? }.

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?, debug? }.

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?, debug? }.

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?, debug? }.

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?, debug? }.

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?, debug? }.

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?, debug? }.

Hailer Developer Documentation