當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。