schedule conflicts backend relatively done

This commit is contained in:
Sriram Hariharan
2018-07-10 17:26:03 -05:00
parent f89318feba
commit 34cd9fc3c5
4 changed files with 60 additions and 32 deletions

View File

@@ -8,14 +8,11 @@ chrome.runtime.onMessage.addListener(function(request, sender, response) {
}
}
else if(request.command == "checkConflicts"){
//Check conflicts
checkConflicts(response);
}
else if(request.command == "alreadyContains"){
alreadyContains(request.unique,response);
}
else if(request.command == "getCourses"){
getCourses(response);
}
else{
const xhr = new XMLHttpRequest();
const method = request.method ? request.method.toUpperCase() : "GET";
@@ -37,18 +34,50 @@ chrome.runtime.onMessage.addListener(function(request, sender, response) {
});
});
function getCourses(sendResponse){
function checkConflicts(sendResponse) {
chrome.storage.sync.get('savedCourses', function(data) {
sendResponse({done:data.savedCourses});
var conflicts = [];
var courses = data.savedCourses;
for(var i = 0; i<courses.length;i++){
for(var j=i+1; j<courses.length; j++){
if(isConflict(courses[i],courses[j])){
console.log("conflict");
conflicts.push([courses[i],courses[j]]);
}
}
}
if(conflicts.length == 0){
sendResponse({isConflict:false});
} else {
console.log(conflicts);
sendResponse({isConflict:true,between: conflicts});
}
});
}
function isConflict(courseA, courseB){
var adtarr = courseA.datetimearr;
var bdtarr = courseB.datetimearr;
for(var i = 0; i<adtarr.length;i++){
var currday = adtarr[i][0];
var currtimes = adtarr[i][1];
for(var j = 0; j<bdtarr.length;j++){
var nextday = bdtarr[j][0];
var nextimes = bdtarr[j][1];
if(nextday == currday){
if(currtimes[0] < nextimes[1] && currtimes[1] > nextimes[0]){
return true;
}
}
}
}
return false;
}
function add(request, sender, sendResponse) {
var courses;
var response;
chrome.storage.sync.get('savedCourses', function(data) {
courses = data.savedCourses;
var courses = data.savedCourses;
courses.push(request.course)
console.log(courses);
chrome.storage.sync.set({savedCourses: courses});
@@ -56,10 +85,8 @@ function add(request, sender, sendResponse) {
});
}
function remove(request, sender, sendResponse) {
var courses;
var response;
chrome.storage.sync.get('savedCourses', function(data) {
courses = data.savedCourses;
var courses = data.savedCourses;
var index = 0;
while(index<courses.length && courses[index].unique != request.course.unique){
index++;
@@ -73,7 +100,7 @@ function remove(request, sender, sendResponse) {
function alreadyContains(unique,sendResponse){
chrome.storage.sync.get('savedCourses', function(data) {
courses = data.savedCourses;
var courses = data.savedCourses;
var contains = false;
var i = 0;
while(i < courses.length && !contains){