var _ = require('underscore')._;

var commands = function(dbot){
    var commands = {

        "~getprop": function(event){
            if(event.params[1]){
                var primary = dbot.api.users.resolveUser(event.server, event.user);
                var res = dbot.db.profiles[event.server][primary.toLowerCase()].profile[event.params[1]];
                if(res){
                    event.reply(res);
                }
                else{
                    event.reply("Nope.");
                }
            }
        },

        "~setprop": function(event){
            if(event.input[1] && event.input[2]){
                if(_.has(this.config.schema.profile, event.input[1])){
                    var primary = dbot.api.users.resolveUser(event.server, event.user);
                    dbot.db.profiles[event.server][primary.toLowerCase()].profile[event.input[1]] = event.input[2];
                    event.reply("Property set, maybe?");
                }
                else{
                    event.reply("Invalid property. Go home.");
                }
            }
        },

        "~profile": function(event){
            if(event.params[1]){
                var primary = dbot.api.users.resolveUser(event.server, event.params[1]);
                if(_.has(dbot.db.profiles[event.server], primary.toLowerCase())){
                    event.reply("http://"+dbot.config.web.webHost+":"+dbot.config.web.webPort+"/profile/"+event.server+"/"+primary.toLowerCase());
                }
                else{
                    event.reply("No profile found for "+event.params[1]);
                }
            }
            else{
                event.message = '~profile ' + event.user;
                event.action = 'PRIVMSG';
                event.params = event.message.split(' ');
                dbot.instance.emit(event);
            }
        }
    };
    commands['~setprop'].regex = [/~setprop ([^ ]+) (.+)/, 3];

    return commands;
};

exports.fetch = function(dbot){
    return commands(dbot);
};