From 123a0b1c809999306f131e6e0f9523d82944d38a Mon Sep 17 00:00:00 2001 From: Baptiste Lemoine Date: Mon, 20 Jan 2020 15:50:09 +0100 Subject: [PATCH] :zap: really fetch a poll by id --- src/app/config/PollConfig.ts | 2 +- .../poll-display/poll-display.component.ts | 20 +++++++++++++++++-- src/app/services/config.service.ts | 14 ++++--------- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/app/config/PollConfig.ts b/src/app/config/PollConfig.ts index 54d01228..24333d4c 100644 --- a/src/app/config/PollConfig.ts +++ b/src/app/config/PollConfig.ts @@ -24,7 +24,7 @@ export class PollConfig { description: string = 'ma description'; myName: string = 'mon pseudo'; myComment: string = 'wouah trop bien framadate!'; - isAdmin: boolean = false; + isAdmin: boolean = true; myEmail: string = "tktest@tktest.com"; myPolls: any = mockMyPolls;// list of retrieved polls from the backend api // date specific poll, we have the choice to setup different hours (timeList) for all possible dates (dateList), or use the same hours for all dates diff --git a/src/app/pages/poll-display/poll-display.component.ts b/src/app/pages/poll-display/poll-display.component.ts index 64a48108..d1705f95 100644 --- a/src/app/pages/poll-display/poll-display.component.ts +++ b/src/app/pages/poll-display/poll-display.component.ts @@ -3,6 +3,7 @@ import {BaseComponent} from "../base-page/base.component"; import {ConfigService} from "../../services/config.service"; import {mockPoll3} from "../../config/mocks/mock-poll3"; import {mockComments} from "../../config/mocks/mock-comments"; +import {ActivatedRoute} from "@angular/router"; @Component({ selector: 'framadate-poll-display', @@ -14,13 +15,28 @@ export class PollDisplayComponent extends BaseComponent implements OnInit { private pollConfigFetched = mockPoll3; private comments = mockComments; - constructor(public config: ConfigService) { + constructor(public config: ConfigService, + public activeRoute: ActivatedRoute) { super(config); } ngOnInit() { // fetch poll with its ID or slug. - // store it in the poll property here + const id = this.activeRoute.snapshot.params.poll; + if (id) { + this.config.pollId = id; + // store it in the poll property here + this.config.getPollById(id).subscribe( + (res: any) => { + this.pollConfigFetched = res; + }, (e) => { + // handle need for a password + this.config.handleError(e) + } + ); + } + + } } diff --git a/src/app/services/config.service.ts b/src/app/services/config.service.ts index 5bad3f1b..6c7594fe 100644 --- a/src/app/services/config.service.ts +++ b/src/app/services/config.service.ts @@ -219,18 +219,12 @@ export class ConfigService extends PollConfig { * api/v1/poll/{id} * @param id */ - getPollById(id: string, password: string) { + getPollById(id: string, password?: string) { - this.http + return this.http .get(`${this.baseHref}/poll/${id}`, this.makeHeaders({body: password})) - .subscribe( - (res: any) => { - this.myPolls = res.data; - }, (e) => { - this.handleError(e) - } - ); + } /** @@ -277,7 +271,7 @@ export class ConfigService extends PollConfig { * @param config */ createPollFromConfig(config: any) { - this.loading= true; + this.loading = true; return this.http.post(`${this.baseHref}/poll`, this.makeHeaders({config: config})) .subscribe((res: any) => {