instagram-private-api
Version:
Instagram private API wrapper for full access to instagram
197 lines • 7.38 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const repository_1 = require("../core/repository");
const Chance = require("chance");
class DirectThreadRepository extends repository_1.Repository {
async approve(threadId) {
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/${threadId}/approve/`,
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
_uuid: this.client.state.uuid,
},
});
return body;
}
async approveMultiple(threadIds) {
const { body } = await this.client.request.send({
url: '/api/v1/direct_v2/threads/approve_multiple/',
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
_uuid: this.client.state.uuid,
thread_ids: JSON.stringify(threadIds),
},
});
return body;
}
async decline(threadId) {
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/${threadId}/decline/`,
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
_uuid: this.client.state.uuid,
},
});
return body;
}
async declineMultiple(threadIds) {
const { body } = await this.client.request.send({
url: '/api/v1/direct_v2/threads/decline_multiple/',
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
_uuid: this.client.state.uuid,
thread_ids: JSON.stringify(threadIds),
},
});
return body;
}
async declineAll() {
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/decline_all/`,
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
_uuid: this.client.state.uuid,
},
});
return body;
}
async approveParticipantRequests(threadId, userIds) {
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/${threadId}/approve_participant_requests/`,
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
user_ids: JSON.stringify(userIds),
share_join_chat_story: true,
_uuid: this.client.state.uuid,
},
});
return body;
}
async getByParticipants(recipientUsers) {
const { body } = await this.client.request.send({
url: '/api/v1/direct_v2/threads/get_by_participants/',
method: 'GET',
qs: {
recipient_users: JSON.stringify(recipientUsers),
},
});
return body;
}
async updateTitle(threadId, title) {
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/${threadId}/update_title/`,
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
_uuid: this.client.state.uuid,
title,
},
});
return body;
}
async mute(threadId) {
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/${threadId}/mute/`,
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
_uuid: this.client.state.uuid,
},
});
return body;
}
async unmute(threadId) {
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/${threadId}/unmute/`,
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
_uuid: this.client.state.uuid,
},
});
return body;
}
async addUser(threadId, userIds) {
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/${threadId}/add_user/`,
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
user_ids: JSON.stringify(userIds),
_uuid: this.client.state.uuid,
},
});
return body;
}
async leave(threadId) {
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/${threadId}/leave/`,
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
_uuid: this.client.state.uuid,
},
});
return body;
}
async hide(threadId) {
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/${threadId}/hide/`,
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
_uuid: this.client.state.uuid,
use_unified_inbox: true,
},
});
return body;
}
async markItemSeen(threadId, threadItemId) {
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/${threadId}/items/${threadItemId}/seen/`,
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
_uuid: this.client.state.uuid,
use_unified_inbox: true,
action: 'mark_seen',
thread_id: threadId,
item_id: threadItemId,
},
});
return body;
}
async broadcast(options) {
const mutationToken = new Chance().guid();
const recipients = options.threadIds || options.userIds;
const recipientsType = options.threadIds ? 'thread_ids' : 'recipient_users';
const recipientsIds = recipients instanceof Array ? recipients : [recipients];
const form = Object.assign({ action: 'send_item', [recipientsType]: JSON.stringify(recipientsType === 'thread_ids' ? recipientsIds : [recipientsIds]), client_context: mutationToken, _csrftoken: this.client.state.cookieCsrfToken, device_id: this.client.state.deviceId, mutation_token: mutationToken, _uuid: this.client.state.uuid }, options.form);
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/broadcast/${options.item}/`,
method: 'POST',
form: options.signed ? this.client.request.sign(form) : form,
qs: options.qs,
});
return body;
}
async deleteItem(threadId, itemId) {
const { body } = await this.client.request.send({
url: `/api/v1/direct_v2/threads/${threadId}/items/${itemId}/delete/`,
method: 'POST',
form: {
_csrftoken: this.client.state.cookieCsrfToken,
_uuid: this.client.state.uuid,
},
});
return body;
}
}
exports.DirectThreadRepository = DirectThreadRepository;
//# sourceMappingURL=direct-thread.repository.js.map