import { Injectable }                               from '@angular/core'
import { HttpClient }                            from '@angular/common/http'
import { isPlatformBrowser } 						from '@angular/common'

import { HelperService } from '../../../services/svc.helper'
import { SharedService } from '../../../services/svc.shared'

import { PageType } from '../../../types/page'

import 'rxjs/add/operator/toPromise'

/**
 * @todo Rename this terribly named service. This is not what it does.
 */
@Injectable()
export class RestrictedCmsService {

    constructor(
        private helper: HelperService,
        private _shared: SharedService,

        private http: HttpClient
    ) { }

    // Variables

    private key = this.helper.key;
    private api = this.helper.server+'feed/get';
    private credentials = this.helper.credentials;


    // Functions

    private handleError(error: any): Promise<any> {
        console.error('An error occurred', error); // TODO: proper error handling
        return Promise.reject(error.message || error);
    }


    getPageContent(urlkey:string): Promise<PageType> {

        return this.http.get(this.api + '/page' + this.credentials + '&urlkey=' + urlkey)
            .toPromise()
            .then((response: any) => {

                let object;

                if(response.status == 'error') {
                    object = response
                } else {
                    object = response.data.page as PageType
                }

                return object
            })
            .catch(this.handleError);
    }

}