Skip to content

Commit cac7e27

Browse files
authored
Merge pull request #5 from dragoni7/redux
Began pulling profile data from api
2 parents 5282dbe + 7d67f01 commit cac7e27

File tree

2 files changed

+55
-36
lines changed

2 files changed

+55
-36
lines changed

src/app/routes/Landing.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import { useNavigate } from "react-router";
22

3-
import React, { useEffect, useState } from "react";
3+
import React, { useEffect } from "react";
44
import BungieLogin from "../../features/auth/BungieLogin";
55
import { regenerateTokens } from "../../lib/bungie_api/TokenService";
66
import { isAuthenticated } from "../../lib/bungie_api/AuthService";
77
import { Container, Grid, Paper } from "@mui/material";
88
import { useDispatch } from "react-redux";
99
import { updateMembershipId } from "../../store/MembershipReducer";
1010
import { getDestinyMembershipId } from "../../features/membership/BungieAccount";
11+
import { getProfile } from "../../features/profile/DestinyProfile";
12+
import { store } from "../../store";
1113

1214
export const LandingRoute = () => {
1315
const navigate = useNavigate();
@@ -20,6 +22,10 @@ export const LandingRoute = () => {
2022
var destinyMembershipId = await getDestinyMembershipId();
2123
dispatch(updateMembershipId(destinyMembershipId));
2224

25+
// update / get manifest
26+
// get player data
27+
await getProfile(store.getState().membership.membershipId);
28+
2329
navigate("/app");
2430
} else if (regenerateTokens()) {
2531
console.log("Tokens regenerated and authenticated");
Lines changed: 48 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,62 @@
11
import { _get } from "../../lib/bungie_api/BungieApiClient";
22
import { getTokens } from "../../lib/bungie_api/TokensStore";
33

4-
export interface DestinyCharacter {
5-
membershipId: string;
6-
membershipType: number;
7-
characterId: string;
8-
dateLastPlayed: string;
9-
classType: number;
10-
classHash: number;
11-
emblemPath: string;
12-
emblemHash: number;
13-
emblemBackgroundPath: string;
4+
export interface DestinyArmor {
5+
intellect: number;
6+
discipline: number;
7+
resilience: number;
8+
mobility: number;
9+
strength: number;
10+
recovery: number;
11+
instanceHash: string;
12+
itemHash: string;
13+
artifice: boolean;
14+
masterwork: boolean;
15+
exotic: boolean;
16+
class: string;
17+
type: string;
18+
socket: string;
1419
}
1520

16-
export function getProfile(destinyMembershipId: string) {
17-
const accessToken = getTokens()?.accessToken;
21+
const IS_ARMOR = 3897883278;
1822

19-
_get(
20-
`/Platform/Destiny2/1/Profile/${destinyMembershipId}/?components=102,200`,
23+
export async function getProfile(destinyMembershipId: string) {
24+
const accessToken = getTokens()?.accessToken.value;
25+
26+
const response = await _get(
27+
`/Platform/Destiny2/1/Profile/${destinyMembershipId}/?components=102,201,300,205,302,304,305`,
2128
{
2229
headers: {
23-
Authorization: `Bearer ${accessToken}}`,
30+
Authorization: `Bearer ${accessToken}`,
2431
},
2532
}
26-
).then((response) => {
27-
if (response.data.Response) {
28-
var characters = response.data.Response.characters.data;
29-
for (const key in characters) {
30-
const character: DestinyCharacter = {
31-
membershipId: characters[key].membershipId,
32-
membershipType: characters[key].membershipType,
33-
characterId: characters[key].characterId,
34-
dateLastPlayed: characters[key].dateLastPlayed,
35-
classType: characters[key].classType,
36-
classHash: characters[key].classHash,
37-
emblemPath: characters[key].emblemPath,
38-
emblemHash: characters[key].emblemHash,
39-
emblemBackgroundPath: characters[key].emblemBackgroundPath,
40-
};
33+
);
34+
35+
if (response.data.Response) {
36+
var responseData = response.data.Response.itemComponents;
37+
38+
var armorHashes = [];
39+
40+
for (const key in responseData.instances.data) {
41+
if (
42+
responseData.instances.data[key].primaryStat !== undefined &&
43+
responseData.instances.data[key].primaryStat.statHash === IS_ARMOR
44+
) {
45+
armorHashes.push(key);
4146
}
47+
}
48+
49+
console.log(armorHashes);
50+
51+
for (const key in responseData.stats.data) {
52+
}
53+
54+
for (const key in responseData.sockets.data) {
55+
}
4256

43-
return true;
44-
} else {
45-
console.log("Could not get response");
46-
return false;
57+
for (const key in responseData.perks.data) {
4758
}
48-
});
59+
} else {
60+
console.log("Could not get response");
61+
}
4962
}

0 commit comments

Comments
 (0)