Skip to content

Commit

Permalink
Добавлен метод getFriendList
Browse files Browse the repository at this point in the history
  • Loading branch information
atreslesne committed Dec 14, 2017
1 parent c88948f commit a725c52
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 1 deletion.
32 changes: 31 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,14 +103,15 @@ steam.getGlobalAchievementPercentagesForApp(440)
### getPlayerSummaries

Метод возвращает информацию о профиле пользователя по указанному идентификатору/идентификаторам.
Для вызова метода необходим ключ Steam API Key.

`getPlayerSummaries([players])`

* `players` - идентификатор или массив идентификаторов пользователей.

```js
const Steam = require('steam-web-api');
const steam = new Steam();
const steam = new Steam('STEAM_API_KEY');

steam.getPlayerSummaries('76561198030288194')
.then(result => {
Expand Down Expand Up @@ -140,3 +141,32 @@ steam.getPlayerSummaries('76561198030288194')
}
}]
```

### getFriendList

Метод возвращает идентификаторы друзей указанного пользователя.
Для вызова метода необходим ключ Steam API Key.

`getFriendList(playerId)`

* `playerId` - идентификатор игрока.

```js
const Steam = require('steam-web-api');
const steam = new Steam('STEAM_API_KEY');

steam.getFriendList('76561198030288194')
.then(result => {
console.dir(result.friends);
})
.catch(err => console.error(err.message));
```

Результат:

```js
[{
id: 'FRIEND_ID',
since: 1312738668
}]
```
6 changes: 6 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ class Steam {
'steamids': players
});
}

getFriendList(playerId) {
return this.client.request('getFriendList', {
'steamid': playerId
});
}
}

module.exports = Steam;
15 changes: 15 additions & 0 deletions src/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ const SteamError = require('./error');
const EntityNews = require('./entity/entityNews');
const EntityAchievements = require('./entity/entityAchievements');
const EntityPlayers = require('./entity/entityPlayers');
const EntityFriends = require('./entity/entityFriends');

class SteamClient {
static get methods() {
Expand Down Expand Up @@ -52,6 +53,20 @@ class SteamClient {
'defaults': {},
'key': true,
'entity': (data, method, url) => { return new EntityPlayers(data, method, url); }
},
'getFriendList': {
'name': 'getFriendList',
'url': {
'protocol': 'http',
'host': 'api.steampowered.com',
'path': '/ISteamUser/GetFriendList/v0001/'
},
'args': ['steamid', 'relationship'],
'defaults': {
'relationship': 'friend'
},
'key': true,
'entity': (data, method, url) => { return new EntityFriends(data, method, url); }
}
}
}
Expand Down
22 changes: 22 additions & 0 deletions src/entity/entityFriends.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
'use strict';

const Entity = require('./entity');

class EntityFriends extends Entity {
constructor(rawData, method, url) {
super(rawData, method, url);

let data = [];
for (let index in rawData['friendslist']['friends']) {
let item = rawData['friendslist']['friends'][index];
data.push({
'id': item['steamid'],
'since': item['friend_since']
});
}

this.friends = data;
}
}

module.exports = EntityFriends;
13 changes: 13 additions & 0 deletions test/testSteam.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ const Steam = require('../index');
const EntityNews = require('../src/entity/entityNews');
const EntityAchievements = require('../src/entity/entityAchievements');
const EntityPlayers = require('../src/entity/entityPlayers');
const EntityFriends = require('../src/entity/entityFriends');

const STEAM_KEY = process.env.STEAM_KEY;

Expand Down Expand Up @@ -63,4 +64,16 @@ describe('Steam', function () {
})
.catch(err => done(err));
});

it('getFriendList', (done) => {
steam.getFriendList('76561198030288194')
.then(res => {
assert.instanceOf(res, EntityFriends);
assert.equal(res.url, 'http://api.steampowered.com/ISteamUser/GetFriendList/v0001/?steamid=76561198030288194&key=' + STEAM_KEY + '&relationship=friend');
assert.equal(res.method, 'getFriendList');
assert.isTrue(res.friends.length > 0);
done();
})
.catch(err => done(err));
});
});

0 comments on commit a725c52

Please sign in to comment.