1
0
Fork 0
lunch/js/models.js

267 lines
6.7 KiB
JavaScript

function getJSONObj(json_input) {
if (typeof json_input == "string")
return $.parseJSON(json_input)
else if (typeof json_input == "object")
return json_input;
console.error("Unable to parse json:", json_input);
return null
}
function User() {
this.UserId = -1;
this.Name = "";
this.Username = "";
this.Password = "";
this.Email = "";
}
User.prototype.toJSON = function() {
var json_obj = {};
json_obj.UserId = this.UserId;
json_obj.Name = this.Name;
json_obj.Username = this.Username;
json_obj.Password = this.Password;
json_obj.Email = this.Email;
return JSON.stringify(json_obj);
}
User.prototype.fromJSON = function(json_input) {
var json_obj = getJSONObj(json_input);
if (json_obj.hasOwnProperty("UserId"))
this.UserId = json_obj.UserId;
if (json_obj.hasOwnProperty("Name"))
this.Name = json_obj.Name;
if (json_obj.hasOwnProperty("Username"))
this.Username = json_obj.Username;
if (json_obj.hasOwnProperty("Password"))
this.Password = json_obj.Password;
if (json_obj.hasOwnProperty("Email"))
this.Email = json_obj.Email;
}
User.prototype.isUser = function() {
var empty_user = new User();
return this.UserId != empty_user.UserId ||
this.Username != empty_user.Username;
}
function Session() {
this.SessionId = -1;
this.UserId = -1;
}
Session.prototype.toJSON = function() {
var json_obj = {};
json_obj.SessionId = this.SessionId;
json_obj.UserId = this.UserId;
return JSON.stringify(json_obj);
}
Session.prototype.fromJSON = function(json_input) {
var json_obj = getJSONObj(json_input);
if (json_obj.hasOwnProperty("SessionId"))
this.SessionId = json_obj.SessionId;
if (json_obj.hasOwnProperty("UserId"))
this.UserId = json_obj.UserId;
}
Session.prototype.isSession = function() {
var empty_session = new Session();
return this.SessionId != empty_session.SessionId ||
this.UserId != empty_session.UserId;
}
function Attendee() {
this.AttendeeId = -1;
this.Name = "";
}
Attendee.prototype.toJSON = function() {
var json_obj = {};
json_obj.AttendeeId = this.AttendeeId;
json_obj.Name = this.Name;
return JSON.stringify(json_obj);
}
Attendee.prototype.fromJSON = function(json_input) {
var json_obj = getJSONObj(json_input);
if (json_obj.hasOwnProperty("AttendeeId"))
this.AttendeeId = json_obj.AttendeeId;
if (json_obj.hasOwnProperty("Name"))
this.Name = json_obj.Name;
}
Attendee.prototype.isAttendee = function() {
var empty_attendee = new Attendee();
return this.AttendeeId != empty_attendee.AttendeeId ||
this.Name != empty_attendee.Name;
}
function PopularAttendee() {
this.Name = "";
this.Popularity = 0;
}
PopularAttendee.prototype.toJSON = function() {
var json_obj = {};
json_obj.Name = this.Name;
json_obj.Popularity = this.Popularity;
return JSON.stringify(json_obj);
}
PopularAttendee.prototype.fromJSON = function(json_input) {
var json_obj = getJSONObj(json_input);
if (json_obj.hasOwnProperty("Popularity"))
this.Popularity = json_obj.Popularity;
if (json_obj.hasOwnProperty("Name"))
this.Name = json_obj.Name;
}
PopularAttendee.prototype.isPopularAttendee = function() {
var empty_attendee = new PopularAttendee();
return this.Popularity != empty_attendee.Popularity ||
this.Name != empty_attendee.Name;
}
function Suggestion() {
this.SuggestionId = -1;
this.VetoingId = -1;
this.AttendeeId = -1;
this.RestaurantName = "";
}
Suggestion.prototype.toJSON = function() {
var json_obj = {};
json_obj.SuggestionId = this.SuggestionId;
json_obj.VetoingId = this.VetoingId;
json_obj.AttendeeId = this.AttendeeId;
json_obj.RestaurantName = this.RestaurantName;
return JSON.stringify(json_obj);
}
Suggestion.prototype.fromJSON = function(json_input) {
var json_obj = getJSONObj(json_input);
if (json_obj.hasOwnProperty("SuggestionId"))
this.SuggestionId = json_obj.SuggestionId;
if (json_obj.hasOwnProperty("VetoingId"))
this.VetoingId = json_obj.VetoingId;
if (json_obj.hasOwnProperty("AttendeeId"))
this.AttendeeId = json_obj.AttendeeId;
if (json_obj.hasOwnProperty("RestaurantName"))
this.RestaurantName = json_obj.RestaurantName;
}
Suggestion.prototype.isSuggestion = function() {
var empty_suggestion = new Suggestion();
return this.SuggestionId != empty_suggestion.SuggestionId &&
this.AttendeeId != empty_suggestion.AttendeeId &&
this.RestaurantName != empty_suggestion.RestaurantName;
}
function PopularSuggestion() {
this.RestaurantName = "";
this.Popularity = 0;
}
PopularSuggestion.prototype.toJSON = function() {
var json_obj = {};
json_obj.RestaurantName = this.RestaurantName;
json_obj.Popularity = this.Popularity;
return JSON.stringify(json_obj);
}
PopularSuggestion.prototype.fromJSON = function(json_input) {
var json_obj = getJSONObj(json_input);
if (json_obj.hasOwnProperty("RestaurantName"))
this.RestaurantName = json_obj.RestaurantName;
if (json_obj.hasOwnProperty("Popularity"))
this.Popularity = json_obj.Popularity;
}
PopularSuggestion.prototype.isPopularSuggestion = function() {
var empty_suggestion = new PopularSuggestion();
return this.RestaurantName != empty_suggestion.RestaurantName &&
this.Popularity != empty_suggestion.Popularity;
}
function Error() {
this.ErrorId = -1;
this.ErrorString = "";
}
Error.prototype.toJSON = function() {
var json_obj = {};
json_obj.ErrorId = this.ErrorId;
json_obj.ErrorString = this.ErrorString;
return JSON.stringify(json_obj);
}
Error.prototype.fromJSON = function(json_input) {
var json_obj = getJSONObj(json_input);
if (json_obj.hasOwnProperty("ErrorId"))
this.ErrorId = json_obj.ErrorId;
if (json_obj.hasOwnProperty("ErrorString"))
this.ErrorString = json_obj.ErrorString;
}
Error.prototype.isError = function() {
var empty_error = new Error();
return this.ErrorId != empty_error.ErrorId ||
this.ErrorString != empty_error.ErrorString;
}
function Report() {
this.ReportId = "invalid";
this.Title = "";
this.Data = [];
}
Report.prototype.toJSON = function() {
var json_obj = {};
json_obj.ReportId = this.ReportId;
json_obj.Title = this.Title;
json_obj.Data = this.Data;
return JSON.stringify(json_obj);
}
Report.prototype.fromJSON = function(json_input) {
var json_obj = getJSONObj(json_input);
if (json_obj.hasOwnProperty("ReportId"))
this.ReportId = json_obj.ReportId;
if (json_obj.hasOwnProperty("Title"))
this.Title = json_obj.Title;
if (json_obj.hasOwnProperty("Data"))
this.Data = json_obj.Data;
}
Report.prototype.isReport = function() {
var empty_report = new Report();
return this.ReportId != empty_report.ReportId ||
this.Title != empty_report.Title;
}
module.exports = models = {
// Classes
User: User,
Session: Session,
Error: Error,
Attendee: Attendee,
PopularAttendee: PopularAttendee,
Suggestion: Suggestion,
PopularSuggestion: PopularSuggestion,
Report: Report,
// Constants
BogusPassword: "password"
};