JSFiddle - React, Tailwind, and code Playground
by chrisbenseler
JavaScript
var Gamification = (function(opts) {
//defaults
var options = {
modulescope: "/gamification",
apiscope: "/gamification/api/",
websocket: {
host: "gamification",
port: 400
}
}
var Client = {
socket: null,
config: function() {
return options.websocket;
},
start: function() {
this.socket = new WebSocket("ws://" + this.config().host + ":" + this.config().port);
$(this).trigger("startup");
},
stop: function() {
if(this.socket != null) {
this.socket.close();
this.socket = null;
}
}
}
var urls = {
mybadges: "users/my_badges",
mylatestbadges: "users/my_latest_badges",
userbadges: "users/{user_id}/badges.json",
latestuserbadges: "users/{user_id}/badges.json"
};
var _get_url = function (key, params) {
if(!params || params=={})
return urls[key];
else {
var url = urls[key];
for(key in params) {
url = url.replace("{" + key + "}", params[key]);
}
return url;
}
}
return {
setOptions: function(opts) {
for(key in opts) {
if(options[key])
options[key] = opts[key];
}
},
mybadges: function() {
var url = _get_url("mybadges");
return $.ajax({ url: options.apiscope + url })
},
mylatestbadges: function() {
var url = _get_url("mylatestbadges");
return $.ajax({ url: options.apiscope + url })
},
userbadges: function(user_id) {
var url = _get_url("userbadges", {user_id: user_id });
return $.ajax({ url: options.apiscope + url })
},
latestuserbadges: function(user_id) {
...