File

src/app/config/PollUtilities.ts

Index

Methods

Methods

makeHeaders
makeHeaders(bodyContent?: any)

prepare headers like the charset and json type for any call to the backend

Parameters :
Name Type Optional
bodyContent any Yes
Returns : { headers: any; body: any; }
makeSlug
makeSlug(config: PollConfig)

make a uniq slug for the current poll creation

Parameters :
Name Type Optional
config PollConfig No
Returns : string
makeUuid
makeUuid()

generate unique id to have a default url for future poll

Returns : any
import {HttpHeaders} from "@angular/common/http";
import {PollConfig} from "./PollConfig";
import {Injectable} from "@angular/core";

@Injectable({
    providedIn: 'root'
})
export class PollUtilities {
    // utils functions
    /**
     * generate unique id to have a default url for future poll
     */
    makeUuid() {
        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
            var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
            return v.toString(16);
        });
    }

    /**
     * make a uniq slug for the current poll creation
     * @param str
     */
    makeSlug(config: PollConfig) {
        let str = '';
        str = config.creationDate.getFullYear() + '_' + (config.creationDate.getMonth() + 1) + '_' + config.creationDate.getDate() + '_' + config.myName + '_' + config.title;
        str = str.replace(/^\s+|\s+$/g, ''); // trim
        str = str.toLowerCase();

        // remove accents, swap ñ for n, etc
        var from = "àáäâèéëêìíïîòóöôùúüûñç·/_,:;";
        var to = "aaaaeeeeiiiioooouuuunc------";
        for (var i = 0, l = from.length; i < l; i++) {
            str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
        }

        str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars
            .replace(/\s+/g, '-') // collapse whitespace and replace by -
            .replace(/-+/g, '-'); // collapse dashes

        return str;
    }

    /**
     * prepare headers like the charset and json type for any call to the backend
     * @param bodyContent
     */
    makeHeaders(bodyContent?: any) {

        const headerDict = {
            'Charset': 'UTF-8',
            'Content-Type': 'application/json',
            'Accept': 'application/json',
            'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
            'Access-Control-Allow-Origin': '*'
        };

        const requestOptions = {
            headers: new HttpHeaders(headerDict),
            body: bodyContent
        };

        return requestOptions;
    }
}

result-matching ""

    No results matching ""