diff --git a/customer/app/src/app/_helpers/fake-backend.ts b/customer/app/src/app/_helpers/fake-backend.ts
index 6213d55..00d1b45 100644
--- a/customer/app/src/app/_helpers/fake-backend.ts
+++ b/customer/app/src/app/_helpers/fake-backend.ts
@@ -10,6 +10,7 @@ import {
import {Observable, of, throwError} from 'rxjs';
import {delay, mergeMap, materialize, dematerialize} from 'rxjs/operators';
import {Event, EventType, Trainer} from "../services/event.service";
+import {identifierModuleUrl} from "@angular/compiler";
;
@@ -162,7 +163,7 @@ export class FakeBackendInterceptor implements HttpInterceptor {
}
- if (request.url.indexOf('/events&id_event_type') && request.method === 'GET') {
+ if (request.url.indexOf('/events') >= 0 && request.method === 'GET') {
// check for a fake jwt token. If valid JWT token found, return the list of users, else throw error
if (request.headers.get('Authorization') === 'Bearer 0000-fake-jwt-token-0000') {
@@ -177,6 +178,41 @@ export class FakeBackendInterceptor implements HttpInterceptor {
}
}
+ const GET_EVENT = 'event&id_event=';
+ if (request.url.indexOf(GET_EVENT) && request.method === 'GET') {
+ // check for a fake jwt token. If valid JWT token found, return the list of users, else throw error
+ if (request.headers.get('Authorization') === 'Bearer 0000-fake-jwt-token-0000') {
+ let pos = request.url.indexOf(GET_EVENT);
+ const length = GET_EVENT.length;
+ pos = pos + length;
+ let idEvent = request.url.substr(pos);
+ let event = events.find(value => value.id == +idEvent );
+ return of(new HttpResponse({status: 200, body: event }) );
+ } else {
+ // invalid JWT token found in request header
+ return throwError({
+ error: {
+ message: 'Unauthorized'
+ }
+ });
+ }
+ }
+
+
+ if (request.headers.get('Authorization') === 'Bearer 0000-fake-jwt-token-0000') {
+ if (request.url.indexOf('event/register&id_event=') && request.method === 'POST') {
+ return of(new HttpResponse({status: 200, body: {} }) );
+ }else if (request.url.indexOf('event/cancel&id_event=') && request.method === 'POST') {
+ return of(new HttpResponse({status: 200, body: {} }) );
+ }
+ } else {
+ // invalid JWT token found in request header
+ return throwError({
+ error: {
+ message: 'Unauthorized'
+ }
+ });
+ }
// Pass any other requests left (unhandled
return next.handle(request);
@@ -184,7 +220,7 @@ export class FakeBackendInterceptor implements HttpInterceptor {
)
// call materialize and dematerialize to ensure delay even if an error is thrown
.pipe(materialize())
- .pipe(delay(500))
+ .pipe(delay(100))
.pipe(dematerialize());
}
diff --git a/customer/app/src/app/pages/events/events.component.html b/customer/app/src/app/pages/events/events.component.html
index e4088a4..21950e1 100644
--- a/customer/app/src/app/pages/events/events.component.html
+++ b/customer/app/src/app/pages/events/events.component.html
@@ -1,48 +1,87 @@
-
-
+
-
{{eventDay.date | date }}
+
Edzés típusa
+
{{event.eventType.name}}
-
-
-
-
{{eventHour.hour | date:'HH:mm'}}
-
+
+
Edző
+
{{event.trainer.name}}
+
+
+
Edzés kezdési időpontja
+
{{event.start | date:'yyyy.MM.dd HH:mm'}}
+
+
+
Edzés vége
+
{{event.end | date:'yyyy.MM.dd HH:mm'}}
+
+
+
Férőhelyek száma
+
{{event.seatCount }}
+
+
+
Szabad helyek száma
+
{{event.seatCount - event.reservationCount }}
+
+
+
+
+
+
+
+
{{eventDay.date | date }}
+
+
+
+
+
{{eventHour.hour | date:'HH:mm'}}
+
+
-
-
-
-
+
+
+
+
{{event.start | date:'HH:mm' }} - {{event.end | date:'HH:mm' }}
-
-
+
+
{{event.eventType.name }} ( {{event.reservationCount}}/{{event.seatCount}}
-
-
+
+
{{event.trainer.name}}
+
+
+
-
-
Jelentkezem
-
Leiratkozom
-
Nincs szabad hely
-
-
+
-
-
+
diff --git a/customer/app/src/app/pages/events/events.component.scss b/customer/app/src/app/pages/events/events.component.scss
index 52ae6e2..4023902 100644
--- a/customer/app/src/app/pages/events/events.component.scss
+++ b/customer/app/src/app/pages/events/events.component.scss
@@ -20,3 +20,6 @@
.event-item:hover { background: orange; cursor: pointer; }
+.title{
+ color: #e5ce48;
+}
diff --git a/customer/app/src/app/pages/events/events.component.ts b/customer/app/src/app/pages/events/events.component.ts
index a3b4abd..621c700 100644
--- a/customer/app/src/app/pages/events/events.component.ts
+++ b/customer/app/src/app/pages/events/events.component.ts
@@ -1,10 +1,8 @@
import {Component, OnInit} from '@angular/core';
import {Event, EventService, EventType} from "../../services/event.service";
import {FormBuilder, FormGroup, Validators} from "@angular/forms";
-import {of, pipe} from "rxjs";
-import {flatMap} from "rxjs/operators";
-import {findAll} from "@angular/compiler-cli/ngcc/src/utils";
-
+import {of, pipe, EMPTY} from "rxjs";
+import {flatMap, mergeMap} from "rxjs/operators";
@Component({
selector: 'app-events',
templateUrl: './events.component.html',
@@ -22,6 +20,7 @@ export class EventsComponent implements OnInit {
selectedEventType: number = null;
+ event: Event;
constructor(private eventService: EventService,
private formBuilder: FormBuilder,) {
@@ -52,6 +51,7 @@ export class EventsComponent implements OnInit {
ngOnInit() {
+ this.event = null;
of(null).pipe(
flatMap(() => this.eventService.findAllEventTypes()),
flatMap(value => {
@@ -144,6 +144,24 @@ export class EventsComponent implements OnInit {
}
}
+ open(event: Event) {
+ of(null).pipe(
+ mergeMap(() => this.eventService.findEvent(event.id) ),
+ mergeMap(event => {this.event = event; return of(null)} )
+ ).subscribe();
+ }
+
+ closeEvent(event: Event) {
+ this.event = null;
+ }
+
+ cancel(event: Event) {
+
+ }
+
+ register(event: Event) {
+
+ }
}
diff --git a/customer/app/src/app/services/endpoints.ts b/customer/app/src/app/services/endpoints.ts
index 37aacdb..99ae14a 100644
--- a/customer/app/src/app/services/endpoints.ts
+++ b/customer/app/src/app/services/endpoints.ts
@@ -2,15 +2,27 @@ import {Observable} from "rxjs";
import {EventType} from "./event.service";
export class Endpoints {
- private static contextPath = "/api";
- private static baseUrl: string = Endpoints.contextPath + "/rest";
+ private static contextPath = "http://localhost/api";
+ private static baseUrl: string = Endpoints.contextPath + "/rest/web/index.php?r=";
public static POST_USERS_AUTHENTICATE(){
return `${this.baseUrl}/users/authenticate`;
}
- public static GET_EVENTS(eventType: number){
- return `${this.baseUrl}/events&id_event_type=${eventType}`;
+ public static GET_EVENTS( ){
+ return `${this.baseUrl}/events`;
+ }
+
+ public static GET_EVENT( id: number){
+ return `${this.baseUrl}/event&id_event=${id}`;
+ }
+
+ public static POST_EVENT_REGISTER( id: number){
+ return `${this.baseUrl}/event/register&id_event=${id}`;
+ }
+
+ public static POST_EVENT_CANCEL( id: number){
+ return `${this.baseUrl}/event/cancel&id_event=${id}`;
}
public static GET_EVENT_TYPES(){
diff --git a/customer/app/src/app/services/event.service.ts b/customer/app/src/app/services/event.service.ts
index 1e4c210..6222ede 100644
--- a/customer/app/src/app/services/event.service.ts
+++ b/customer/app/src/app/services/event.service.ts
@@ -14,8 +14,21 @@ export class EventService {
return this.http.get(Endpoints.GET_EVENT_TYPES()) as Observable;
}
- findEvents(idEventType?:number): Observable {
- return this.http.get(Endpoints.GET_EVENTS(idEventType)) as Observable;
+ findEvents( ): Observable {
+ return this.http.get(Endpoints.GET_EVENTS( )) as Observable;
+ }
+
+ findEvent(idEvent: number ): Observable {
+ console.info(Endpoints.GET_EVENT( idEvent ));
+ return this.http.get(Endpoints.GET_EVENT( idEvent )) as Observable;
+ }
+
+ register(idEvent: number ): Observable {
+ return this.http.post(Endpoints.POST_EVENT_REGISTER( idEvent ),{}) as Observable;
+ }
+
+ cancel(idEvent: number ): Observable {
+ return this.http.post(Endpoints.POST_EVENT_CANCEL( idEvent ),{}) as Observable;
}
}