import { Injectable } from '@angular/core';
import { TokenStore } from '@core/services';
import { HttpHeaders } from '@angular/common/http';

@Injectable()
export class HeaderProvider {
    constructor(private tokenStore: TokenStore) { }

    getHeaders(authorize = true, tokenOverride?: string): HttpHeaders {
        let headers = new HttpHeaders({
            'Content-Type': 'application/json',
            'Cache-Control': 'private, no-cache, nostore, max-age=0',
            Pragma: 'no-cache',
            Expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
            Accept: 'application/json'
        });

        let token = this.tokenStore.getToken();

        if (tokenOverride) {
            token = tokenOverride;
        }

        if (authorize && token) {
            headers = headers.append('Authorization', token);
        }

        return headers;

    }
}
