@sports-sdk/ruwt
Version:
A package for interacting with the Are You Watching This?! API
342 lines (335 loc) • 11.7 kB
JavaScript
;
var core = require('@sports-sdk/core');
var axios = require('axios');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var axios__default = /*#__PURE__*/_interopDefault(axios);
// src/client.ts
var RUWTClient = class extends core.SportsSdkClient {
apiKey;
/**
* Creates an Are You Watching This?! (RUWT) client.
* @param siteId - Your unique RUWT site id. If not provided, it will look for `RUWT_SITE_ID` in the environment variables.
* @param apiKey - The API token for authenticating API requests. If not provided, it will look for `RUWT_API_KEY` in the environment variables.
* @throws Will throw an error if the API key is not provided or found in the environment variables.
*/
constructor(siteId, apiKey) {
const site = siteId || process.env.RUWT_SITE_ID;
const token = apiKey || process.env.RUWT_API_KEY;
if (!token) {
throw new Error(
"RUWT API key is required. Provide it as a parameter or set the environment variable RUWT_API_KEY."
);
}
const endpoint = `https://${site ? `${site}.api.` : ""}areyouwatchingthis.com/api`;
const session = axios__default.default.create({
baseURL: endpoint,
headers: {
"Content-Type": "application/json"
},
validateStatus: function(status) {
return status < 500;
}
});
super(endpoint, session);
this.apiKey = token;
}
/**
* Sends a GET request to the specified URL with the provided parameters.
* @param apiPath - The path to append to the URL when sending the request.
* @param additionalParams - Additional query parameters for the request.
* @param parser - Optional ZodObject to parse the response data before returning it as T
* @returns The response data from the API.
*/
async request({
apiPath,
additionalParams = {},
parser
}) {
const params = Object.entries(additionalParams).reduce(
(acc, [key, value]) => {
if (Array.isArray(value)) {
value.forEach((val) => {
acc.append(key, val);
});
} else {
acc.append(key, value);
}
return acc;
},
new URLSearchParams({ apiKey: this.apiKey })
);
const response = await this.session.get(apiPath, { params });
const result = parser?.parse(response.data) ?? response.data;
return result;
}
async getGames(parameters) {
const additionalParams = parameters ? {
...parameters,
...parameters.dateRange && {
startDate: parameters.dateRange[0],
endDate: parameters.dateRange[1]
},
...parameters.providerCoordinates && {
providerLatitude: parameters.providerCoordinates[0],
providerLongitude: parameters.providerCoordinates[1]
}
} : {};
return await this.request({
apiPath: "/games.json",
additionalParams
});
}
async getGameOdds(parameters) {
return await this.request({
apiPath: "/odds.json",
additionalParams: parameters
});
}
async getOddsSplits(parameters) {
return await this.request({
apiPath: "/odds-splits.json",
additionalParams: parameters
});
}
async getSideOdds(parameters) {
return await this.request({
apiPath: "/sideodds.json",
additionalParams: parameters
});
}
async getPlayers(parameters) {
return await this.request({
apiPath: "/players.json",
additionalParams: parameters
});
}
async getPlayerStatistics(parameters) {
return await this.request({
apiPath: "/statistics.json",
additionalParams: parameters
});
}
async getSports() {
return await this.request({
apiPath: "/sports.json"
});
}
async getStandings(parameters) {
return await this.request({
apiPath: "/standings.json",
additionalParams: parameters
});
}
async getTeams(parameters) {
return await this.request({
apiPath: "/teams.json",
additionalParams: parameters
});
}
async getInjuries(parameters) {
return await this.request({
apiPath: "/injuries.json",
additionalParams: parameters
});
}
};
// src/enums.ts
var RUWTSport = /* @__PURE__ */ ((RUWTSport2) => {
RUWTSport2["af2"] = "af2";
RUWTSport2["afl"] = "afl";
RUWTSport2["ahl"] = "ahl";
RUWTSport2["aussiefootball"] = "aussiefootball";
RUWTSport2["bowling"] = "bowling";
RUWTSport2["boxing"] = "boxing";
RUWTSport2["cba"] = "cba";
RUWTSport2["cfl"] = "cfl";
RUWTSport2["chl"] = "chl";
RUWTSport2["commgames"] = "commgames";
RUWTSport2["cricket"] = "cricket";
RUWTSport2["cycling"] = "cycling";
RUWTSport2["echl"] = "echl";
RUWTSport2["esports"] = "esports";
RUWTSport2["general"] = "general";
RUWTSport2["golf"] = "golf";
RUWTSport2["horse"] = "horse";
RUWTSport2["kbo"] = "kbo";
RUWTSport2["lacrosse"] = "lacrosse";
RUWTSport2["llws"] = "llws";
RUWTSport2["mlb"] = "mlb";
RUWTSport2["mma"] = "mma";
RUWTSport2["nba"] = "nba";
RUWTSport2["nbdl"] = "nbdl";
RUWTSport2["nbl"] = "nbl";
RUWTSport2["ncaab"] = "ncaab";
RUWTSport2["ncaabaseball"] = "ncaabaseball";
RUWTSport2["ncaabw"] = "ncaabw";
RUWTSport2["ncaaf"] = "ncaaf";
RUWTSport2["ncaah"] = "ncaah";
RUWTSport2["netball"] = "netball";
RUWTSport2["nfl"] = "nfl";
RUWTSport2["nfleuropa"] = "nfleuropa";
RUWTSport2["nhl"] = "nhl";
RUWTSport2["olympics"] = "olympics";
RUWTSport2["poker"] = "poker";
RUWTSport2["racing"] = "racing";
RUWTSport2["rodeo"] = "rodeo";
RUWTSport2["rugbyleague"] = "rugbyleague";
RUWTSport2["rugbyunion"] = "rugbyunion";
RUWTSport2["soccer"] = "soccer";
RUWTSport2["tennis"] = "tennis";
RUWTSport2["trackandfield"] = "trackandfield";
RUWTSport2["ufl"] = "ufl";
RUWTSport2["wbc"] = "wbc";
RUWTSport2["wnba"] = "wnba";
return RUWTSport2;
})(RUWTSport || {});
var RUWTLeagueCode = /* @__PURE__ */ ((RUWTLeagueCode2) => {
RUWTLeagueCode2["AUF"] = "AUF";
RUWTLeagueCode2["AUFN"] = "AUFN";
RUWTLeagueCode2["AUGA"] = "AUGA";
RUWTLeagueCode2["BBA"] = "BBA";
RUWTLeagueCode2["BBC"] = "BBC";
RUWTLeagueCode2["BBD"] = "BBD";
RUWTLeagueCode2["BBG"] = "BBG";
RUWTLeagueCode2["BBKR"] = "BBKR";
RUWTLeagueCode2["BBM"] = "BBM";
RUWTLeagueCode2["BBN"] = "BBN";
RUWTLeagueCode2["BBY"] = "BBY";
RUWTLeagueCode2["BGA"] = "BGA";
RUWTLeagueCode2["BKA"] = "BKA";
RUWTLeagueCode2["BKAU"] = "BKAU";
RUWTLeagueCode2["BKC"] = "BKC";
RUWTLeagueCode2["BKD"] = "BKD";
RUWTLeagueCode2["BKN"] = "BKN";
RUWTLeagueCode2["BKP"] = "BKP";
RUWTLeagueCode2["BKW"] = "BKW";
RUWTLeagueCode2["BOX"] = "BOX";
RUWTLeagueCode2["CMWG"] = "CMWG";
RUWTLeagueCode2["CRINT"] = "CRINT";
RUWTLeagueCode2["CROWC"] = "CROWC";
RUWTLeagueCode2["CRTAU"] = "CRTAU";
RUWTLeagueCode2["CRTIN"] = "CRTIN";
RUWTLeagueCode2["CRTWC"] = "CRTWC";
RUWTLeagueCode2["CYC"] = "CYC";
RUWTLeagueCode2["DGA"] = "DGA";
RUWTLeagueCode2["EGA"] = "EGA";
RUWTLeagueCode2["ESOWL"] = "ESOWL";
RUWTLeagueCode2["FBA"] = "FBA";
RUWTLeagueCode2["FBB"] = "FBB";
RUWTLeagueCode2["FBC"] = "FBC";
RUWTLeagueCode2["FBD"] = "FBD";
RUWTLeagueCode2["FBP"] = "FBP";
RUWTLeagueCode2["FBU"] = "FBU";
RUWTLeagueCode2["FBW"] = "FBW";
RUWTLeagueCode2["GEN"] = "GEN";
RUWTLeagueCode2["HKA"] = "HKA";
RUWTLeagueCode2["HKC"] = "HKC";
RUWTLeagueCode2["HKE"] = "HKE";
RUWTLeagueCode2["HKH"] = "HKH";
RUWTLeagueCode2["HKN"] = "HKN";
RUWTLeagueCode2["LCN"] = "LCN";
RUWTLeagueCode2["LGA"] = "LGA";
RUWTLeagueCode2["LLB"] = "LLB";
RUWTLeagueCode2["MMA"] = "MMA";
RUWTLeagueCode2["NTINT"] = "NTINT";
RUWTLeagueCode2["NTTT"] = "NTTT";
RUWTLeagueCode2["NTWC"] = "NTWC";
RUWTLeagueCode2["OLY"] = "OLY";
RUWTLeagueCode2["OLYSM"] = "OLYSM";
RUWTLeagueCode2["OLYSW"] = "OLYSW";
RUWTLeagueCode2["PBA"] = "PBA";
RUWTLeagueCode2["PGA"] = "PGA";
RUWTLeagueCode2["POK"] = "POK";
RUWTLeagueCode2["RACF1"] = "RACF1";
RUWTLeagueCode2["RACGP"] = "RACGP";
RUWTLeagueCode2["RACIN"] = "RACIN";
RUWTLeagueCode2["RACNS"] = "RACNS";
RUWTLeagueCode2["RACV8"] = "RACV8";
RUWTLeagueCode2["RAH"] = "RAH";
RUWTLeagueCode2["RAT"] = "RAT";
RUWTLeagueCode2["RLAU9"] = "RLAU9";
RUWTLeagueCode2["RLEU"] = "RLEU";
RUWTLeagueCode2["RLINT"] = "RLINT";
RUWTLeagueCode2["RLNRL"] = "RLNRL";
RUWTLeagueCode2["RLWC"] = "RLWC";
RUWTLeagueCode2["ROD"] = "ROD";
RUWTLeagueCode2["RU6N"] = "RU6N";
RUWTLeagueCode2["RU7"] = "RU7";
RUWTLeagueCode2["RUINT"] = "RUINT";
RUWTLeagueCode2["RUSR"] = "RUSR";
RUWTLeagueCode2["RUTRC"] = "RUTRC";
RUWTLeagueCode2["RUWC"] = "RUWC";
RUWTLeagueCode2["SCAFC"] = "SCAFC";
RUWTLeagueCode2["SCB"] = "SCB";
RUWTLeagueCode2["SCC"] = "SCC";
RUWTLeagueCode2["SCNA"] = "SCNA";
RUWTLeagueCode2["SCU"] = "SCU";
RUWTLeagueCode2["SGA"] = "SGA";
RUWTLeagueCode2["SOA"] = "SOA";
RUWTLeagueCode2["SOAQ"] = "SOAQ";
RUWTLeagueCode2["SOASI"] = "SOASI";
RUWTLeagueCode2["SOAUA"] = "SOAUA";
RUWTLeagueCode2["SOAUW"] = "SOAUW";
RUWTLeagueCode2["SOC"] = "SOC";
RUWTLeagueCode2["SOE"] = "SOE";
RUWTLeagueCode2["SOEFA"] = "SOEFA";
RUWTLeagueCode2["SOEFL"] = "SOEFL";
RUWTLeagueCode2["SOEL1"] = "SOEL1";
RUWTLeagueCode2["SOELC"] = "SOELC";
RUWTLeagueCode2["SOF"] = "SOF";
RUWTLeagueCode2["SOF2"] = "SOF2";
RUWTLeagueCode2["SOG"] = "SOG";
RUWTLeagueCode2["SOG2"] = "SOG2";
RUWTLeagueCode2["SOI"] = "SOI";
RUWTLeagueCode2["SOI2"] = "SOI2";
RUWTLeagueCode2["SOINT"] = "SOINT";
RUWTLeagueCode2["SOINW"] = "SOINW";
RUWTLeagueCode2["SOM"] = "SOM";
RUWTLeagueCode2["SOMW"] = "SOMW";
RUWTLeagueCode2["SONCC"] = "SONCC";
RUWTLeagueCode2["SONLC"] = "SONLC";
RUWTLeagueCode2["SOR"] = "SOR";
RUWTLeagueCode2["SOS"] = "SOS";
RUWTLeagueCode2["SOS2"] = "SOS2";
RUWTLeagueCode2["SOSC"] = "SOSC";
RUWTLeagueCode2["SOW"] = "SOW";
RUWTLeagueCode2["SOWW"] = "SOWW";
RUWTLeagueCode2["SOX"] = "SOX";
RUWTLeagueCode2["TEN"] = "TEN";
return RUWTLeagueCode2;
})(RUWTLeagueCode || {});
var RUWTOddsProvider = /* @__PURE__ */ ((RUWTOddsProvider2) => {
RUWTOddsProvider2["BETWAY"] = "BETWAY";
RUWTOddsProvider2["BET_365"] = "BET_365";
RUWTOddsProvider2["BET_RIVERS_AZ"] = "BET_RIVERS_AZ";
RUWTOddsProvider2["BET_RIVERS_CA_ON"] = "BET_RIVERS_CA_ON";
RUWTOddsProvider2["BET_RIVERS_CO"] = "BET_RIVERS_CO";
RUWTOddsProvider2["BET_RIVERS_IA"] = "BET_RIVERS_IA";
RUWTOddsProvider2["BET_RIVERS_IL"] = "BET_RIVERS_IL";
RUWTOddsProvider2["BET_RIVERS_IN"] = "BET_RIVERS_IN";
RUWTOddsProvider2["BET_RIVERS_LA"] = "BET_RIVERS_LA";
RUWTOddsProvider2["BET_RIVERS_MD"] = "BET_RIVERS_MD";
RUWTOddsProvider2["BET_RIVERS_MI"] = "BET_RIVERS_MI";
RUWTOddsProvider2["BET_RIVERS_NY"] = "BET_RIVERS_NY";
RUWTOddsProvider2["BET_RIVERS_OH"] = "BET_RIVERS_OH";
RUWTOddsProvider2["BET_RIVERS_PA"] = "BET_RIVERS_PA";
RUWTOddsProvider2["BET_RIVERS_VA"] = "BET_RIVERS_VA";
RUWTOddsProvider2["BET_RIVERS_WV"] = "BET_RIVERS_WV";
RUWTOddsProvider2["CONSENSUS"] = "CONSENSUS";
RUWTOddsProvider2["DESERT_DIAMOND_AZ"] = "DESERT_DIAMOND_AZ";
RUWTOddsProvider2["DRAFTKINGS"] = "DRAFTKINGS";
RUWTOddsProvider2["ESPNBET"] = "ESPNBET";
RUWTOddsProvider2["FANDUEL"] = "FANDUEL";
RUWTOddsProvider2["MGM"] = "MGM";
RUWTOddsProvider2["SPORTS_INTERACTION"] = "SPORTS_INTERACTION";
RUWTOddsProvider2["SPORT_888"] = "SPORT_888";
RUWTOddsProvider2["SUGAR_HOUSE_NJ"] = "SUGAR_HOUSE_NJ";
RUWTOddsProvider2["TIPICO"] = "TIPICO";
RUWTOddsProvider2["UNIBET"] = "UNIBET";
RUWTOddsProvider2["WILLIAM_HILL"] = "WILLIAM_HILL";
return RUWTOddsProvider2;
})(RUWTOddsProvider || {});
exports.RUWTClient = RUWTClient;
exports.RUWTLeagueCode = RUWTLeagueCode;
exports.RUWTOddsProvider = RUWTOddsProvider;
exports.RUWTSport = RUWTSport;