diff --git a/index.js b/index.js
index 0d2f7af84..df9df9356 100644
--- a/index.js
+++ b/index.js
@@ -90,6 +90,7 @@ const typeDefs = gql`
topBrellaPlayers (amount: Int): [Player!]!
topPlayers (weapon: String!): topPlayer!
weaponPlacementStats(weapon: String!): [Int!]!
+ playerInfo(uid: String!): [Placement]
}
type Mutation {
@@ -291,6 +292,17 @@ const resolvers = {
}, {sz: 0, tc: 0, rm: 0, cb: 0})
return {placements: placements.slice(0, 101), modeCount: [m.sz+m.tc+m.rm+m.cb, m.sz, m.tc, m.rm, m.cb]}
+ },
+ playerInfo: (root, args) => { //tee tästä uus tyyppi joka palauttaa kaikki placementit sekä Player objektin
+ console.log('args', args)
+ return Placement
+ .find({ unique_id: args.uid })
+ .sort({ "month": "asc", "year": "asc"})
+ .catch(e => {
+ throw new UserInputError(e.message, {
+ invalidArgs: args,
+ })
+ })
}
}
}
diff --git a/models/player.js b/models/player.js
index 0c3c55743..c5bebbd89 100644
--- a/models/player.js
+++ b/models/player.js
@@ -2,7 +2,7 @@ const mongoose = require('mongoose')
const playerSchema = new mongoose.Schema({
name: {type: String, required: true },
- unique_id: { type: Number, unique: true, required: true },
+ unique_id: { type: String, unique: true, required: true },
alias: String,
twitter: String,
weapons: [String],
diff --git a/react-ui/src/App.js b/react-ui/src/App.js
index 2435238c1..ede5dc3a6 100644
--- a/react-ui/src/App.js
+++ b/react-ui/src/App.js
@@ -2,7 +2,8 @@ import React, { useState } from 'react'
import { Container } from 'semantic-ui-react'
import Footer from './components/Footer'
import MainMenu from './components/MainMenu'
-import { BrowserRouter as Router, Route } from 'react-router-dom'
+import NotFound from './components/NotFound'
+import { BrowserRouter as Router, Route, Redirect, Switch } from 'react-router-dom'
import WeaponLeaderboardSelector from './components/WeaponLeaderboardSelector'
import XSearch from './components/XSearch'
@@ -13,13 +14,18 @@ const App = () => {
-
-
- } />
- } />
-
-
-
+
+
+
+ This is home.
} />
+ } />
+ } />
+ } />
+ } />
+
+
+
+
)
diff --git a/react-ui/src/components/InfoPlayer.js b/react-ui/src/components/InfoPlayer.js
new file mode 100644
index 000000000..df463d684
--- /dev/null
+++ b/react-ui/src/components/InfoPlayer.js
@@ -0,0 +1,7 @@
+import React from 'react'
+
+const InfoPlayer = ({ uid }) => {
+
+}
+
+export default InfoPlayer
\ No newline at end of file
diff --git a/react-ui/src/components/InfoWeapon.js b/react-ui/src/components/InfoWeapon.js
index 7cd37e829..a4962d277 100644
--- a/react-ui/src/components/InfoWeapon.js
+++ b/react-ui/src/components/InfoWeapon.js
@@ -3,6 +3,7 @@ import { useQuery } from 'react-apollo-hooks'
import { topPlayersOfWeapon } from '../graphql/queries/topPlayersOfWeapon'
import weaponDictReversed from '../utils/internal_english.json'
import { Loader, Header, Table, Checkbox } from 'semantic-ui-react'
+import { withRouter } from 'react-router-dom'
import szIcon from './modeIcons/sz.png'
import tcIcon from './modeIcons/tc.png'
@@ -12,7 +13,7 @@ import { months, modes } from '../utils/lists'
const modeIcons = ["", szIcon, tcIcon, rmIcon, cbIcon]
-const InfoWeapon = ({ wpn }) => { //todo - handle error (404?) //new weapons not shown?
+const InfoWeapon = withRouter(({ history, wpn }) => { //todo - handle error (404?) //new weapons not shown?
const { data, error, loading } = useQuery(topPlayersOfWeapon, {variables: {weapon: weaponDictReversed[wpn] }})
const [uniqueId, setUniqueId] = useState('')
const [allPlayers, setAllPlayers] = useState(true)
@@ -39,6 +40,10 @@ const InfoWeapon = ({ wpn }) => { //todo - handle error (404?) //new weapons not
}
}, [data, loading, wpn])
+ if (!(wpn in weaponDictReversed)) {
+ history.push('/404')
+ }
+
if (loading) {
return
}
@@ -121,6 +126,6 @@ const InfoWeapon = ({ wpn }) => { //todo - handle error (404?) //new weapons not
)
-}
+})
export default InfoWeapon
\ No newline at end of file
diff --git a/react-ui/src/components/NotFound.js b/react-ui/src/components/NotFound.js
new file mode 100644
index 000000000..be441a1b5
--- /dev/null
+++ b/react-ui/src/components/NotFound.js
@@ -0,0 +1,59 @@
+import React from 'react'
+import { Header } from 'semantic-ui-react'
+
+import bridge from './s1Maps/bridge.png'
+import depot from './s1Maps/depot.png'
+import heights from './s1Maps/heights.png'
+import mahi from './s1Maps/mahi.png'
+import museum from './s1Maps/museum.png'
+import rig from './s1Maps/rig.png'
+import underpass from './s1Maps/underpass.png'
+
+const NotFound = () => {
+ const maps = [
+ {
+ name: 'Hammerhead Bridge',
+ img: bridge
+ },
+ {
+ name: 'Bluefin Depot',
+ img: depot
+ },
+ {
+ name: 'Flounder Heights',
+ img: heights
+ },
+ {
+ name: 'Mahi-Mahi Resort',
+ img: mahi
+ },
+ {
+ name: 'Museum d\'Alfonsino',
+ img: museum
+ },
+ {
+ name: 'Saltspray Rig',
+ img: rig
+ },
+ {
+ name: 'Urchin Underpass',
+ img: underpass
+ }
+ ]
+ const mapObject = maps[Math.floor(Math.random()*maps.length)]
+ return (
+ <>
+
+

+
+
+
+
+
+ ...not unlike {mapObject.name} can't be found in Splatoon 2
+
+ >
+ )
+}
+
+export default NotFound
\ No newline at end of file
diff --git a/react-ui/src/components/s1Maps/bridge.png b/react-ui/src/components/s1Maps/bridge.png
new file mode 100644
index 000000000..7d001b5cc
Binary files /dev/null and b/react-ui/src/components/s1Maps/bridge.png differ
diff --git a/react-ui/src/components/s1Maps/depot.png b/react-ui/src/components/s1Maps/depot.png
new file mode 100644
index 000000000..89ba4770a
Binary files /dev/null and b/react-ui/src/components/s1Maps/depot.png differ
diff --git a/react-ui/src/components/s1Maps/heights.png b/react-ui/src/components/s1Maps/heights.png
new file mode 100644
index 000000000..353cd493b
Binary files /dev/null and b/react-ui/src/components/s1Maps/heights.png differ
diff --git a/react-ui/src/components/s1Maps/mahi.png b/react-ui/src/components/s1Maps/mahi.png
new file mode 100644
index 000000000..ec7b388a8
Binary files /dev/null and b/react-ui/src/components/s1Maps/mahi.png differ
diff --git a/react-ui/src/components/s1Maps/museum.png b/react-ui/src/components/s1Maps/museum.png
new file mode 100644
index 000000000..d3939f18d
Binary files /dev/null and b/react-ui/src/components/s1Maps/museum.png differ
diff --git a/react-ui/src/components/s1Maps/rig.png b/react-ui/src/components/s1Maps/rig.png
new file mode 100644
index 000000000..a50db01e0
Binary files /dev/null and b/react-ui/src/components/s1Maps/rig.png differ
diff --git a/react-ui/src/components/s1Maps/underpass.png b/react-ui/src/components/s1Maps/underpass.png
new file mode 100644
index 000000000..5e14cb4cf
Binary files /dev/null and b/react-ui/src/components/s1Maps/underpass.png differ