From d61536f22c41d3fe73c483b5ab7c38ec44ca0034 Mon Sep 17 00:00:00 2001
From: pcain-usgs <pcain@usgs.gov>
Date: Wed, 11 Aug 2021 13:11:28 -0600
Subject: [PATCH] Derived Factory in Controller/ws

---
 geomagio/Controller.py  | 3 ++-
 geomagio/api/ws/data.py | 7 ++++---
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/geomagio/Controller.py b/geomagio/Controller.py
index 432f63f9f..f985c4fae 100644
--- a/geomagio/Controller.py
+++ b/geomagio/Controller.py
@@ -8,6 +8,7 @@ from typing import List, Optional, Tuple, Union
 from obspy.core import Stream, UTCDateTime
 
 from .algorithm import Algorithm, algorithms, AlgorithmException
+from .DerivedTimeseriesFactory import DerivedTimeseriesFactory
 from .PlotTimeseriesFactory import PlotTimeseriesFactory
 from .StreamTimeseriesFactory import StreamTimeseriesFactory
 from . import TimeseriesUtility, Util
@@ -543,7 +544,7 @@ def get_input_factory(args):
             input_factory = StreamTimeseriesFactory(
                 factory=input_factory, stream=input_stream
             )
-    return input_factory
+    return DerivedTimeseriesFactory(input_factory)
 
 
 def get_output_factory(args):
diff --git a/geomagio/api/ws/data.py b/geomagio/api/ws/data.py
index bec7e546e..24f16b226 100644
--- a/geomagio/api/ws/data.py
+++ b/geomagio/api/ws/data.py
@@ -5,7 +5,7 @@ from fastapi import APIRouter, Depends, Query
 from obspy import UTCDateTime, Stream
 from starlette.responses import Response
 
-from ... import TimeseriesFactory, TimeseriesUtility
+from ... import DerivedTimeseriesFactory, TimeseriesFactory, TimeseriesUtility
 from ...edge import EdgeFactory, MiniSeedFactory
 from ...iaga2002 import IAGA2002Writer
 from ...imfjson import IMFJSONWriter
@@ -35,15 +35,16 @@ def get_data_factory(
         SamplingPeriod.HOUR,
         SamplingPeriod.DAY,
     ]:
-        return MiniSeedFactory(
+        factory = MiniSeedFactory(
             host=host, port=int(os.getenv("DATA_MINISEED_PORT", "2061"))
         )
     elif sampling_period in [SamplingPeriod.SECOND, SamplingPeriod.MINUTE]:
-        return EdgeFactory(
+        factory = EdgeFactory(
             host=host, port=int(os.getenv("DATA_EARTHWORM_PORT", "2060"))
         )
     else:
         return None
+    return DerivedTimeseriesFactory(factory)
 
 
 def get_data_query(
-- 
GitLab