aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard/src/services/Attribute.service.js
blob: a00da8f18102a8363fa459db2bc464b7ceae7403 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import Vue from 'vue'
import config from '../config.js'
import util from './Util.service'

var host = config.host;

var attributeResource;

var attributesMap = {};
var attributes = [];

function loadAttributes(){
    attributeResource = Vue.resource(host + '/attributes{/id}', {});

    attributeResource.query().then(res => {
        createAttributes(res.body);
    }, util.displayErrorFunction('Unable to load attributes'));
}

function createAttributes(attributesData){
    attributes.splice(0, attributes.length);
    util.cleanObject(attributesMap);
    util.createInternal(attributesData.attributes, attributes, attributesMap);
}

function getAttribute(id){
    return attributesMap[id];
}

function getAttributeId(name){
    for (let i = 0; i < attributes.length; i++){
        let attr = attributes[i];
        for (let j = 0; j < attr.values.length; j++){
            let value = attr.values[j];
            if (value === name){
                return attr.id;
            }
        }
    }
}

export default {
    initialize: loadAttributes,
    getAttribute: getAttribute,
    getAttributeId: getAttributeId
}