Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
opening-hours
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
regionalkauf
opening-hours
Commits
186b2c17
Commit
186b2c17
authored
Jul 02, 2014
by
Johannes Bill
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
implemented test with database data
parent
aeca4ffa
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
21 additions
and
25 deletions
+21
-25
dateArray.js
lib/dateArray.js
+10
-16
timeUtils.js
lib/timeUtils.js
+9
-9
dataBaseTest.js
test/dataBaseTest.js
+2
-0
No files found.
lib/dateArray.js
View file @
186b2c17
...
@@ -3,9 +3,6 @@ var Holidays = require('./holidays');
...
@@ -3,9 +3,6 @@ var Holidays = require('./holidays');
var
now
=
new
Date
();
var
now
=
new
Date
();
var
holidaysGetter
=
new
Holidays
(
now
.
getFullYear
());
var
holidaysGetter
=
new
Holidays
(
now
.
getFullYear
());
var
includeString
=
"810a6deb-46f2-4fa8-b779-bb5c2a6b5577"
;
var
excludeString
=
"bb74c170-b06f-4d2b-ab88-2f6bf9ce8068"
;
var
_epochStart
=
new
Date
();
var
_epochStart
=
new
Date
();
_epochStart
=
new
Date
(
_epochStart
.
getFullYear
(),
_epochStart
.
getMonth
(),
_epochStart
.
getDate
());
_epochStart
=
new
Date
(
_epochStart
.
getFullYear
(),
_epochStart
.
getMonth
(),
_epochStart
.
getDate
());
//var _epochStart = new Date(2014, 0, 0);
//var _epochStart = new Date(2014, 0, 0);
...
@@ -20,12 +17,14 @@ function setEpocheSpan(startDate, endDate) {
...
@@ -20,12 +17,14 @@ function setEpocheSpan(startDate, endDate) {
}
}
function
calculateOpeningHours
(
json
)
{
function
calculateOpeningHours
(
json
)
{
var
includeString
=
"810a6deb-46f2-4fa8-b779-bb5c2a6b5577"
;
var
excludeString
=
"bb74c170-b06f-4d2b-ab88-2f6bf9ce8068"
;
var
jsonIncl
=
json
[
includeString
];
var
jsonIncl
=
json
[
includeString
];
var
jsonExcl
=
json
[
excludeString
];
var
jsonExcl
=
json
[
excludeString
];
if
(
!
jsonIncl
)
{
if
(
!
jsonIncl
)
{
throw
'no openinghours model found'
;
throw
'no openinghours model found'
;
return
[];
}
}
var
resultIncl
=
[];
var
resultIncl
=
[];
...
@@ -51,17 +50,17 @@ function calculateOpeningHours(json) {
...
@@ -51,17 +50,17 @@ function calculateOpeningHours(json) {
option
=
getOption
(
data
);
option
=
getOption
(
data
);
resultExcl
.
push
(
getOpeningHours
(
data
,
option
));
resultExcl
.
push
(
getOpeningHours
(
data
,
option
));
}
}
resultExcl
=
tmUtils
.
orOp
erator
(
resultExcl
);
resultExcl
=
tmUtils
.
orOp
(
resultExcl
);
}
}
var
allHolidays
=
getAllHolidays
();
var
allHolidays
=
getAllHolidays
();
resultIncl
=
tmUtils
.
orOp
erator
(
resultIncl
);
resultIncl
=
tmUtils
.
orOp
(
resultIncl
);
resultIncl
=
tmUtils
.
andNotOp
erator
(
resultIncl
,
allHolidays
);
resultIncl
=
tmUtils
.
andNotOp
(
resultIncl
,
allHolidays
);
resultIncl
=
tmUtils
.
orOp
erator
([
resultIncl
,
holidayIncl
]);
resultIncl
=
tmUtils
.
orOp
([
resultIncl
,
holidayIncl
]);
var
result
=
resultIncl
;
var
result
=
resultIncl
;
if
(
jsonExcl
)
if
(
jsonExcl
)
result
=
tmUtils
.
andNotOp
erator
(
resultIncl
,
resultExcl
);
result
=
tmUtils
.
andNotOp
(
resultIncl
,
resultExcl
);
return
result
;
return
result
;
}
}
...
@@ -79,8 +78,7 @@ function getDaySpan(data) {
...
@@ -79,8 +78,7 @@ function getDaySpan(data) {
case
10
:
case
10
:
return
[
1
,
6
];
return
[
1
,
6
];
default
:
default
:
throw
"Invalid day option: "
+
dayoption
;
throw
(
"Invalid day option: "
+
dayoption
);
return
[];
}
}
}
}
...
@@ -108,7 +106,6 @@ function getHolidays(data) {
...
@@ -108,7 +106,6 @@ function getHolidays(data) {
var
option
=
data
[
"option"
][
"0"
];
var
option
=
data
[
"option"
][
"0"
];
if
(
option
!=
"holiday"
)
{
if
(
option
!=
"holiday"
)
{
throw
'not holiday: '
+
option
;
throw
'not holiday: '
+
option
;
return
null
;
}
}
var
timeSpan
=
getTimeSpan
(
data
);
var
timeSpan
=
getTimeSpan
(
data
);
...
@@ -206,10 +203,7 @@ function getOpeningHoursRepeatable(data) {
...
@@ -206,10 +203,7 @@ function getOpeningHoursRepeatable(data) {
}
}
}
}
module
.
exports
.
getData
=
function
(
json
)
{
module
.
exports
.
getData
=
calculateOpeningHours
;
return
calculateOpeningHours
(
json
);
};
module
.
exports
.
setEpocheSpan
=
setEpocheSpan
;
module
.
exports
.
setEpocheSpan
=
setEpocheSpan
;
lib/timeUtils.js
View file @
186b2c17
...
@@ -61,7 +61,7 @@ function standardFromTillDay(daySpan, timeSpan, dateSpan, epochSpan, daysDistanc
...
@@ -61,7 +61,7 @@ function standardFromTillDay(daySpan, timeSpan, dateSpan, epochSpan, daysDistanc
}
}
}
}
result
=
sort
(
result
);
result
=
sort
(
result
);
result
=
andOp
erator
(
result
,
[
epochSpan
]);
result
=
andOp
(
result
,
[
epochSpan
]);
return
result
;
return
result
;
}
}
...
@@ -135,7 +135,7 @@ function cyclicFromTillDay(daySpan, noInMonth, timeSpan, dateSpan, epochSpan) {
...
@@ -135,7 +135,7 @@ function cyclicFromTillDay(daySpan, noInMonth, timeSpan, dateSpan, epochSpan) {
}
}
}
}
result
=
andOp
erator
(
result
,
[
epochSpan
]);
result
=
andOp
(
result
,
[
epochSpan
]);
return
result
;
return
result
;
}
}
...
@@ -218,7 +218,7 @@ function dateSpan(dateSpan) {
...
@@ -218,7 +218,7 @@ function dateSpan(dateSpan) {
];
];
}
}
function
orOp
erator
(
intervals
)
{
function
orOp
(
intervals
)
{
var
result
=
[];
var
result
=
[];
for
(
var
i
=
0
;
i
<
intervals
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
intervals
.
length
;
i
++
)
{
result
=
result
.
concat
(
intervals
[
i
]);
result
=
result
.
concat
(
intervals
[
i
]);
...
@@ -250,7 +250,7 @@ function mergeOverlaps(interval) {
...
@@ -250,7 +250,7 @@ function mergeOverlaps(interval) {
return
interval
;
return
interval
;
}
}
function
andOp
erator
(
interval1
,
interval2
)
{
function
andOp
(
interval1
,
interval2
)
{
var
result
=
[];
var
result
=
[];
var
i
=
0
;
var
i
=
0
;
...
@@ -305,7 +305,7 @@ function invert(interval, epochStart, epochEnd) {
...
@@ -305,7 +305,7 @@ function invert(interval, epochStart, epochEnd) {
* @param interval2
* @param interval2
* @returns {*}
* @returns {*}
*/
*/
function
andNotOp
erator
(
interval1
,
interval2
)
{
function
andNotOp
(
interval1
,
interval2
)
{
if
(
!
(
interval1
&&
interval1
[
0
]
&&
interval1
[
0
][
0
]))
{
if
(
!
(
interval1
&&
interval1
[
0
]
&&
interval1
[
0
][
0
]))
{
return
[];
return
[];
}
}
...
@@ -317,7 +317,7 @@ function andNotOperator(interval1, interval2) {
...
@@ -317,7 +317,7 @@ function andNotOperator(interval1, interval2) {
var
epochEnd
=
new
Date
(
Math
.
max
(
interval1
[
interval1
.
length
-
1
][
1
],
interval2
[
interval2
.
length
-
1
][
1
]));
var
epochEnd
=
new
Date
(
Math
.
max
(
interval1
[
interval1
.
length
-
1
][
1
],
interval2
[
interval2
.
length
-
1
][
1
]));
interval2
=
invert
(
interval2
,
epochStart
,
epochEnd
);
interval2
=
invert
(
interval2
,
epochStart
,
epochEnd
);
return
andOp
erator
(
interval1
,
interval2
);
return
andOp
(
interval1
,
interval2
);
}
}
function
validate
(
interval
)
{
function
validate
(
interval
)
{
...
@@ -334,9 +334,9 @@ function validate(interval) {
...
@@ -334,9 +334,9 @@ function validate(interval) {
module
.
exports
.
standardFromTillDay
=
standardFromTillDay
;
module
.
exports
.
standardFromTillDay
=
standardFromTillDay
;
module
.
exports
.
cyclicFromTillDay
=
cyclicFromTillDay
;
module
.
exports
.
cyclicFromTillDay
=
cyclicFromTillDay
;
module
.
exports
.
singleDay
=
singleDay
;
module
.
exports
.
singleDay
=
singleDay
;
module
.
exports
.
orOp
erator
=
orOperator
;
module
.
exports
.
orOp
=
orOp
;
module
.
exports
.
andOp
erator
=
andOperator
;
module
.
exports
.
andOp
=
andOp
;
module
.
exports
.
andNotOp
erator
=
andNotOperator
;
module
.
exports
.
andNotOp
=
andNotOp
;
module
.
exports
.
mergeOverlaps
=
mergeOverlaps
;
module
.
exports
.
mergeOverlaps
=
mergeOverlaps
;
module
.
exports
.
sort
=
sort
;
module
.
exports
.
sort
=
sort
;
module
.
exports
.
dateSpan
=
dateSpan
;
module
.
exports
.
dateSpan
=
dateSpan
;
...
...
test/
t
est.js
→
test/
dataBaseT
est.js
View file @
186b2c17
var
mysql
=
require
(
'mysql'
);
var
mysql
=
require
(
'mysql'
);
var
dateArray
=
require
(
'../lib/dateArray'
);
var
dateArray
=
require
(
'../lib/dateArray'
);
var
fs
=
require
(
'fs'
);
var
fs
=
require
(
'fs'
);
var
tmUtils
=
require
(
'../lib/timeUtils'
);
var
includeString
=
"810a6deb-46f2-4fa8-b779-bb5c2a6b5577"
;
var
includeString
=
"810a6deb-46f2-4fa8-b779-bb5c2a6b5577"
;
var
excludeString
=
"bb74c170-b06f-4d2b-ab88-2f6bf9ce8068"
;
var
excludeString
=
"bb74c170-b06f-4d2b-ab88-2f6bf9ce8068"
;
...
@@ -24,6 +25,7 @@ connection.query('SELECT name, elements FROM cms_zoo_item WHERE type = "company"
...
@@ -24,6 +25,7 @@ connection.query('SELECT name, elements FROM cms_zoo_item WHERE type = "company"
var
name
=
rows
[
i
].
name
;
var
name
=
rows
[
i
].
name
;
try
{
try
{
var
result
=
dateArray
.
getData
(
obj
);
var
result
=
dateArray
.
getData
(
obj
);
tmUtils
.
validate
(
result
);
}
}
catch
(
err
)
catch
(
err
)
{
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment