diff --git a/Dockerfile b/Dockerfile index bffce91..dfb5e75 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ WORKDIR /srv COPY js /srv/js COPY pages /srv/pages COPY static /srv/static -COPY next.config.js package.json package-lock.json server.js style.css yarn.lock /srv/ +COPY next.config.js package.json package-lock.json server.js yarn.lock /srv/ RUN yarn install RUN yarn build RUN yarn cache clean @@ -16,4 +16,4 @@ COPY --from=build /srv /srv RUN apk --no-cache add yarn && rm -rf /var/cache/apk/* EXPOSE 80 ENV TURNIERE_API_URL=https://api.turnie.re -CMD yarn start \ No newline at end of file +CMD yarn start diff --git a/js/api.js b/js/api.js index 7af1396..3510c72 100644 --- a/js/api.js +++ b/js/api.js @@ -1,123 +1,14 @@ -import { - createStore, - applyMiddleware, - combineReducers -} from 'redux'; +import {applyMiddleware, combineReducers, createStore} from 'redux'; import {composeWithDevTools} from 'redux-devtools-extension'; import thunkMiddleware from 'redux-thunk'; import {errorMessages} from './constants'; -import getConfig from 'next/config'; -const {publicRuntimeConfig} = getConfig(); +import {actionTypesUserinfo, defaultStateUserinfo} from './redux/userInfo'; +import {actionTypesTournamentinfo, defaultStateTournamentinfo} from './redux/tournamentInfo'; +import {actionTypesTournamentlist, defaultStateTournamentlist} from './redux/tournamentList'; +import {deleteRequest, getRequest, patchRequest, postRequest} from './redux/backendApi'; -const apiUrl = publicRuntimeConfig.api_url; - -const axios = require('axios'); - -const actionTypesUserinfo = { - 'REGISTER': 'REGISTER', - 'REGISTER_RESULT_SUCCESS': 'REGISTER_RESULT_SUCCESS', - 'REGISTER_RESULT_ERROR': 'REGISTER_RESULT_ERROR', - - 'LOGIN': 'LOGIN', - 'LOGIN_RESULT_SUCCESS': 'LOGIN_RESULT_SUCCESS', - 'LOGIN_RESULT_ERROR': 'LOGIN_RESULT_ERROR', - - 'LOGOUT': 'LOGOUT', - - 'VERIFY_CREDENTIALS': 'VERIFY_CREDENTIALS', - 'VERIFY_CREDENTIALS_SUCCESS': 'VERIFY_CREDENTIALS_SUCCESS', - 'VERIFY_CREDENTIALS_ERROR': 'VERIFY_CREDENTIALS_ERROR', - - 'STORE_AUTH_HEADERS': 'STORE_AUTH_HEADERS', - - 'REHYDRATE': 'USERINFO_REHYDRATE', - 'CLEAR': 'USERINFO_CLEAR' -}; - -const defaultStateUserinfo = { - isSignedIn: false, - username: null, - error: false, - errorMessages: [], - - accesstoken: null, - client: null, - expiry: null, - uid: null -}; - -const actionTypesTournamentinfo = { - 'REQUEST_TOURNAMENT': 'REQUEST_TOURNAMENT', - 'REQUEST_TOURNAMENT_SUCCESS': 'REQUEST_TOURNAMENT_SUCCESS', - - 'CREATE_TOURNAMENT': 'CREATE_TOURNAMENT', - - 'MODIFY_TOURNAMENT': 'MODIFY_TOURNAMENT', - 'MODIFY_TOURNAMENT_SUCCESS': 'MODIFY_TOURNAMENT_SUCCESS', - 'MODIFY_TOURNAMENT_ERROR': 'MODIFY_TOURNAMENT_ERROR', - - 'REHYDRATE': 'TOURNAMENTINFO_REHYDRATE', - 'CLEAR': 'TOURNAMENTINFO_CLEAR' -}; - -const defaultStateTournamentinfo = { - code: '', - description: '', - id: -1, - name: '', - ownerUsername: '', - isPublic: '', - stages: [], - teams: [] -}; - -const actionTypesTournamentlist = { - 'FETCH': 'FETCH', - 'FETCH_SUCCESS': 'FETCH_SUCCESS', - 'REHYDRATE': 'REHYDRATE' -}; - -const defaultStateTournamentlist = { - tournaments: [] -}; - -export function postRequest(state, url, data) { - return axios.post(apiUrl + url, data, { - headers: generateHeaders(state) - }); -} - -export function getRequest(state, url) { - return axios.get(apiUrl + url, { - headers: generateHeaders(state) - }); -} - -export function deleteRequest(state, url) { - return axios.delete(apiUrl + url, { - headers: generateHeaders(state) - }); -} - -export function patchRequest(state, url, data) { - return axios.patch(apiUrl + url, data, { - headers: generateHeaders(state) - }); -} - -function generateHeaders(state) { - if (state.userinfo.isSignedIn) { - return { - 'access-token': state.userinfo.accesstoken, - 'client': state.userinfo.client, - 'uid': state.userinfo.uid - }; - } else { - return {}; - } -} function storeOptionalToken(response) { if (checkForAuthenticationHeaders(response)) { diff --git a/js/components/ErrorComponents.js b/js/components/ErrorComponents.js index 69e5745..fb55c75 100644 --- a/js/components/ErrorComponents.js +++ b/js/components/ErrorComponents.js @@ -7,7 +7,7 @@ import {Footer} from './Footer'; import 'bootstrap/dist/css/bootstrap.min.css'; -import '../../static/everypage.css'; +import '../../static/css/everypage.css'; import '../../static/css/error.css'; export class ErrorPageComponent extends React.Component { @@ -46,44 +46,36 @@ export function ErrorPage(props) { } function ErrorMessage(props) { - switch (props.code) { - case 400: - return (
- Wir empfehlen, die eingegebene Seite über die Startseite zu suchen. -
-- Bitte stelle sicher, dass Du angemeldet bist und auf dieses Turnier oder dieses Match zugreifen darfst. -
-- Wir empfehlen, die eingegebene Seite über die Startseite zu suchen. -
-- Entweder hast Du dich vertippt, oder die gesuchte Seite gibt es nicht. -
-- Wir empfehlen, die eingegebene Seite über die Startseite zu suchen. -
-- turnie.re kann Deine Anfrage im Moment nicht verarbeiten. Bitte versuche es später erneut. -
-{props.message}
} + {props.showTryStartpage &&+ Wir empfehlen, die eingegebene Seite über die Startseite zu suchen. +
} +| {props.match.team1} | +
| kein Gegner | +
| {props.match.scoreTeam1} | +{props.match.team1} | +
|---|---|
| {props.match.scoreTeam2} | +{props.match.team2} | +
|
+ |
+ {props.match.team1} | +
|
+ |
+ {props.match.team2} | +
| {props.match.team1} | -
| kein Gegner | -
| {props.match.scoreTeam1} | -{props.match.team1} | -
|---|---|
| {props.match.scoreTeam2} | -{props.match.team2} | -
|
- |
- {props.match.team1} | -
|
- |
- {props.match.team2} | -