/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

import { Injectable } from '@angular/core';
import { PageName } from '../_enums/page-name.enum';
import { AuthService } from '../services/auth.service';

@Injectable()
export class HomeService {

    constructor(private authService: AuthService) {
    }

    getFilteredServiceLinks() {
        return this.getServiceLinks().filter(s => this.authService.isAnyAccessGranted(s.pageNames));
    }

    getServiceLinks() {
        return [
           {{#modulesActive}}
           {
               name: "{{title}}",
               description: "{{description}}",
               imageUrl: "{{{homeImage}}}",
               icon: "{{{icon}}}",
               pageNames: [{{{pageNames}}}],
               link: {
                   newWindow: false,
                   value: "{{{link}}}"
               }
           },
           {{/modulesActive}}
           {
               name: "Notifications",
               description: "The notification module lets you view all notifications generated by pipelines.",
               imageUrl: "assets/img/home/notifications.png",
               icon: "chat",
               pageNames: [PageName.NOTIFICATIONS],
               link: {
                   newWindow: false,
                   value: "notifications"
               }
           }
       ];
    }
}
