Просмотр исходного кода

fix up some existing event sources

Adam Shaw 7 лет назад
Родитель
Сommit
f2640b05a3
2 измененных файлов с 30 добавлено и 1 удалено
  1. 29 0
      src/reducers/func-event-source.ts
  2. 1 1
      src/reducers/json-feed-event-source.ts

+ 29 - 0
src/reducers/func-event-source.ts

@@ -0,0 +1,29 @@
+import { unpromisify } from '../util/promise'
+import { registerSourceType } from './event-sources'
+import { EventInput } from './event-store'
+
+registerSourceType('function', {
+
+  parse(raw: any): EventInput[] {
+    if (typeof raw === 'function') { // short form
+      return raw
+    } else if (typeof raw.events === 'function') {
+      return raw.events
+    }
+  },
+
+  fetch(arg, success, failure) {
+    const dateEnv = arg.calendar.dateEnv
+
+    unpromisify(
+      arg.eventSource.sourceTypeMeta({ // the function
+        start: dateEnv.toDate(arg.range.start),
+        end: dateEnv.toDate(arg.range.end),
+        timeZone: dateEnv.timeZone
+      }),
+      success,
+      failure
+    )
+  }
+
+})

+ 1 - 1
src/reducers/json-feed-event-source.ts

@@ -58,7 +58,7 @@ registerSourceType('json-feed', {
       if (rawEvents) {
         success(rawEvents)
       } else {
-        failure()
+        failure('No response')
       }
     })
   }