// (C) Copyright 2015 Martin Dougiamas
//
// Licensed 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 { CoreLoggerProvider } from '@providers/logger';
import { CoreCourseProvider } from '@core/course/providers/course';

/**
 * Service that provides some features regarding lists of courses and categories.
 */
@Injectable()
export class AddonCalendarHelperProvider {
    protected logger;

    protected EVENTICONS = {
        course: 'fa-university',
        group: 'people',
        site: 'globe',
        user: 'person',
        category: 'fa-cubes'
    };

    constructor(logger: CoreLoggerProvider, private courseProvider: CoreCourseProvider) {
        this.logger = logger.getInstance('AddonCalendarHelperProvider');
    }

    /**
     * Convenience function to format some event data to be rendered.
     *
     * @param {any} e Event to format.
     */
    formatEventData(e: any): void {
        e.icon = this.EVENTICONS[e.eventtype] || false;
        if (!e.icon) {
            e.icon = this.courseProvider.getModuleIconSrc(e.modulename);
            e.moduleIcon = e.icon;
        }
    }
}
