Completed
Push — master ( 7cb640...ba6ef7 )
by greg
01:21
created

src/cli/cms/data/sort.js   A

Complexity

Total Complexity 14
Complexity/F 7

Size

Lines of Code 29
Function Count 2

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 0
c 1
b 0
f 0
nc 1
dl 0
loc 29
rs 10
wmc 14
mnd 2
bc 6
fnc 2
bpm 3
cpm 7
noi 0

1 Function

Rating   Name   Duplication   Size   Complexity  
B sort.js ➔ byDateAsc 0 10 7
1
/**
2
 * sort an array of objects by date attribute
3
 *
4
 * Example : [{date: {abe_meta: {publish: {latest: date}}}}, {date: {abe_meta: {publish: {latest: date}}}}].sort(cmsData.sort.byDateDesc)
5
 * 
6
 * @param  {Object} a object with date attribute
7
 * @param  {Object} b object with date attribute
8
 * @return {Int}   1 | 0 | -1
9
 */
10
export function byDateDesc(a, b) {
11
  var dateA = (a.abe_meta.publish != null && a.abe_meta.publish.latest != null) ? new Date(a.abe_meta.publish.latest.date) : 0
12
  var dateB = (b.abe_meta.publish != null && b.abe_meta.publish.latest) ? new Date(b.abe_meta.publish.latest.date) : 0
13
  if(dateA < dateB) {
14
    return 1
15
  }else if(dateA > dateB) {
16
    return -1
17
  }
18
  return 0
19
}
20
/**
21
 * sort an array of objects by date attribute
22
 *
23
 * Example : [{date: {abe_meta: {publish: {latest: date}}}}, {date: {abe_meta: {publish: {latest: date}}}}].sort(cmsData.sort.byDateAsc)
24
 * 
25
 * @param  {Object} a object with date attribute
26
 * @param  {Object} b object with date attribute
27
 * @return {Int}   1 | 0 | -1
28
 */
29
export function byDateAsc(a, b) {
30
  var dateA = (a.abe_meta.publish != null && a.abe_meta.publish.latest != null) ? new Date(a.abe_meta.publish.latest.date) : 0
31
  var dateB = (b.abe_meta.publish != null && b.abe_meta.publish.latest) ? new Date(b.abe_meta.publish.latest.date) : 0
32
  if(dateA > dateB) {
33
    return 1
34
  }else if(dateA < dateB) {
35
    return -1
36
  }
37
  return 0
38
}