UNPKG

vk_api_wrapper

Version:
91 lines (87 loc) 2.74 kB
(function() { "use strict"; const VKsdk = require('vksdk'); const fields = 'bdate, sex, country, city, home_town, site, education, universities, schools, status, relation, personal, activities, interests, music, movies, tv, books, games, about, quotes'; module.exports = function(config) { const VK = new VKsdk({ appId: config.id, appSecret: config.secret, language: config.language || 'ru', https: config.https || false, secure: config.secure || false }); return class VKApi { static all(user_id, arr) { return new Promise(function(done, reject) { Promise.all(arr).then( function(data) { return done({ "_id": user_id, "vkid": user_id, "profile": data[0], "posts": data[1], "group_ids": data[2], "friends": data[3] }); }, function(err) { return reject(err); }); }); } static getUserInfo(user, fields) { return new Promise(function(done, reject) { VK.request('users.get', { 'user_ids': user, 'fields': fields || '' }, function(data) { return data.error ? reject(data.error) : done(data.response[0]); }); }); } static getUserGroups(user) { return new Promise(function(done, reject) { VK.request('users.getSubscriptions', { 'user_id': user, 'extended': 1 }, function(data) { return data.error ? reject(data.error) : done(data.response); }); }); } static getUserPosts(user_id, offset) { return new Promise(function(done, reject) { VK.request('wall.get', { 'owner_id': user_id, 'offset': offset || 0, 'filter': 'owner', 'extended': 0 }, function(data) { return data.error ? reject(data.error) : done(data.response); }); }); } static getUserFriends(user, offset) { return new Promise(function(done, reject) { VK.request('friends.get', { 'user_id': user, 'offset': offset || 0, 'count': 999 }, function(data) { return data.error ? reject(data.error) : done(data.response); }); }); } static getUserVideos(user) { // auth return new Promise(function(done, reject) { VK.request('video.getUserVideos', { 'owner_id': user, 'count': 100 }, function(data) { return data.error ? reject(data.error) : done(data.response); }); }); } }; }; }());