HashtagSell / posting-api

API for storage and retrieval of posting details for Hashtagsell
0 stars 0 forks source link

added popular category algorithm to post.find waterfall #24

Closed that1guy closed 9 years ago

that1guy commented 9 years ago

Alright.. now you get to double check my work! :)

http://localhost:4043/v1/postings/?start=0&count=35&filters[mandatory][contains][heading]=audi&geo[lookup]=true&category[lookup]=true

should trigger pop cat algorithm and return pagination data in options object in response.

factory.bracketNotationURL = function (params, bracketURL, urlParts) {

        urlParts = urlParts || [];
        var index = 0;

        for (var prop in params) {

            index++;
            console.log(index);

            if(params.hasOwnProperty(prop)) {

                console.log('bracketURL', bracketURL);
                console.log('length', urlParts.length);
                console.log('~~~~~~~~~~~~~~~~~~~');

                if (!bracketURL && !urlParts.length) {
                    bracketURL = '?' + prop;
                } else if (index > 1 && urlParts.length) {
                    bracketURL = '&' + prop;
                } else {
                    bracketURL += '[' + prop + ']';
                }

                if (typeof params[prop] === "object" && params[prop] !== null && params[prop].constructor !== Array) {

                    console.log('RECURSING!');

                    factory.bracketNotationURL(params[prop], bracketURL, urlParts);

                } else {

                    if(params[prop].constructor === Array) {
                        bracketURL += '=' + params[prop].join();
                    } else {
                        bracketURL += '=' + params[prop];
                    }

                    urlParts.push(bracketURL);

                    console.log(urlParts);

                }
            }
        }

        return urlParts.join('');

    };

//TEST FUNCTION THAT CONVERTS.
        var defaultParams = {
            start: 0,
            count: 35,
            filters: {
                mandatory: {
                    contains: {
                        heading: "something"
                    }
                }
            },
            geo: {
                lookup: true,
                min: 0,
                max: 50000
            },
            category: {
                lookup: true
            }
        };

factory.bracketNotationURL(defaultParams);