当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript steam-api.get函数代码示例

本文整理汇总了TypeScript中@server/utils/steam-api.get函数的典型用法代码示例。如果您正苦于以下问题:TypeScript get函数的具体用法?TypeScript get怎么用?TypeScript get使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了get函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: fetchSteamData

async function fetchSteamData(
  profile: UserProfile,
  oneDaySinceLastUpdate: boolean,
): Promise<{ steam?: SteamProfile }> {
  try {
    const { data } = await steamApi.get(
      'ISteamUser/GetPlayerSummaries/v0002/',
      { params: { steamids: profile.id } },
    );
    const player = data.response.players[0];

    const [bans, friends] = await Promise.all([
      fetchVacBans(profile),
      fetchFriends(profile, oneDaySinceLastUpdate),
    ]);

    return {
      steam: {
        ...profile.steam,
        id: profile.id,
        name: player.personaname,
        customUrl: player.profileurl,
        avatar: {
          small: player.avatar,
          medium: player.avatarmedium,
          large: player.avatarfull,
        },
        ...friends,
        ...bans,
      },
    };
  } catch (error) {
    log('Error while requesting steam data', {
      userId: profile.id,
      error,
    });

    return {};
  }
}
开发者ID:TF2PickupNET,项目名称:TF2Pickup,代码行数:40,代码来源:fetch-steam-data.ts

示例2: validateHours

export default async function validateHours(hook: CreateBeforeHookContext<User>) {
  if (requiredHours === null) {
    return;
  }

  let hours = 0;

  try {
    const { data } = await steamApi.get('IPlayerService/GetOwnedGames/v0001/', {
      params: {
        steamid: hook.data.id,
        include_played_free_games: 1, // eslint-disable-line camelcase, @typescript-eslint/camelcase
      },
    });
    const games = data.response && data.response.games ? data.response.games : [];
    const game = games.find(({ appid }: { appid: number }) => appid === tf2AppId);

    hours = game ? Math.floor(game.playtime_forever / 60) : 0;
  } catch (error) {
    log('Error while getting tf2 hours for userId', {
      error,
      userId: hook.data.id,
    });

    throw new GeneralError(generalErrorMessage);
  }

  if (hours < requiredHours) {
    log('User doesn\'t have enough hours', {
      userId: hook.data.id,
      data: {
        hours,
        requiredHours,
      },
    });

    throw new Forbidden(notEnoughHoursMessage);
  }
}
开发者ID:TF2PickupNET,项目名称:TF2Pickup,代码行数:39,代码来源:validate-hours.ts

示例3: fetchVacBans

async function fetchVacBans(user: UserProfile): Promise<WithBans> {
  try {
    const params = { steamids: user.id };
    const result = await steamApi.get('ISteamUser/GetPlayerBans/v1/', { params });
    const player = result.data.players[0];

    return {
      isBanned: player.VACBanned && player.DaysSinceLastBan < 365,
      bannedUntil: addDays(new Date(), 365 - player.DaysSinceLastBan).getUTCSeconds(),
    };
  } catch (error) {
    log('Error while requesting VAC bans', {
      userId: user.id,
      error,
    });

    return {
      isBanned: false,
      bannedUntil: null,
    };
  }
}
开发者ID:TF2PickupNET,项目名称:TF2Pickup,代码行数:22,代码来源:fetch-vac-bans.ts

示例4: fetchFriends

async function fetchFriends(user: UserProfile, oneDaySinceLastUpdate: boolean) {
  if (!oneDaySinceLastUpdate) {
    return {};
  }

  try {
    const { data } = await steamApi.get('ISteamUser/GetFriendList/v0001/', {
      params: {
        steamid: user.id,
        relationship: 'friend',
      },
    });
    const friends = data.friendslist.friends.map((friend: Friend) => friend.steamid);

    return { friends };
  } catch (error) {
    log('Error while requesting steam friends', {
      userId: user.id,
      error,
    });

    return {};
  }
}
开发者ID:TF2PickupNET,项目名称:TF2Pickup,代码行数:24,代码来源:fetch-friends.ts


注:本文中的@server/utils/steam-api.get函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。