| | "use strict"; |
| |
|
| | const utils = require("../utils"); |
| | const log = require("npmlog"); |
| |
|
| | module.exports = function (defaultFuncs, api, ctx) { |
| | return function changeThreadColor(color, threadID, callback) { |
| | let resolveFunc = function () { }; |
| | let rejectFunc = function () { }; |
| | const returnPromise = new Promise(function (resolve, reject) { |
| | resolveFunc = resolve; |
| | rejectFunc = reject; |
| | }); |
| |
|
| | if (!callback) { |
| | callback = function (err) { |
| | if (err) { |
| | return rejectFunc(err); |
| | } |
| | resolveFunc(err); |
| | }; |
| | } |
| |
|
| | if (!isNaN(color)) { |
| | color = color.toString(); |
| | } |
| | const validatedColor = color !== null ? color.toLowerCase() : color; |
| |
|
| | const form = { |
| | dpr: 1, |
| | queries: JSON.stringify({ |
| | o0: { |
| | |
| | doc_id: "1727493033983591", |
| | query_params: { |
| | data: { |
| | actor_id: ctx.i_userID || ctx.userID, |
| | client_mutation_id: "0", |
| | source: "SETTINGS", |
| | theme_id: validatedColor, |
| | thread_id: threadID |
| | } |
| | } |
| | } |
| | }) |
| | }; |
| |
|
| | defaultFuncs |
| | .post("https://www.facebook.com/api/graphqlbatch/", ctx.jar, form) |
| | .then(utils.parseAndCheckLogin(ctx, defaultFuncs)) |
| | .then(function (resData) { |
| | if (resData[resData.length - 1].error_results > 0) { |
| | throw new utils.CustomError(resData[0].o0.errors); |
| | } |
| |
|
| | return callback(); |
| | }) |
| | .catch(function (err) { |
| | log.error("changeThreadColor", err); |
| | return callback(err); |
| | }); |
| |
|
| | return returnPromise; |
| | }; |
| | }; |
| |
|