geosolutions-it / smb-portal

SaveMyByke portal
https://waffle.io/geosolutions-it/smb-portal
1 stars 3 forks source link

add my-tracks and my-segments api endpoints #138

Closed ricardogsilva closed 6 years ago

ricardogsilva commented 6 years ago

This PR adds new API endpoints for a user to check its own tracks and segments. The following are now available for end-users:

GET /api/my-tracks/
GET /api/my-tracks/{track-id}
DELETE /api/my-tracks/{track-id}

GET /api/my-segments/
GET /api/my-segments/{segment-id}
DELETE /api/my-segments/{segment-id}

Example response for track details

GET /api/my-tracks/171

{
  "id": 171,
  "url": "http://10.0.1.66:8000/api/my-tracks/171/",
  "owner": "http://10.0.1.66:8000/api/my-user",
  "duration": 2,
  "segments": [
    {
      "id": 1260,
      "url": "http://10.0.1.66:8000/api/my-segments/1260/",
      "track": "http://10.0.1.66:8000/api/my-tracks/171/",
      "geom": "LINESTRING (10.5082121 43.8424541, 10.5080646 43.8424228, 10.50802 43.8424197, 10.5079852 43.8424006, 10.5078874 43.8423901, 10.5078362 43.842358, 10.5077911 43.8423766, 10.5077581 43.8423795, 10.5077196 43.8424039, 10.5076696 43.8424083, 10.5076052 43.8423803, 10.5075042 43.8423946, 10.5074896 43.8424121, 10.5073857 43.842452, 10.5073705 43.8424482, 10.5073859 43.8424749, 10.5074154 43.8424993, 10.5074087 43.8425588, 10.5074256 43.8425773, 10.5074227 43.8425945, 10.5074378 43.84263, 10.5074326 43.8426597, 10.5074452 43.8426993, 10.5074724 43.8427097, 10.507499 43.8427692, 10.5075039 43.8428437, 10.507528 43.842884, 10.5075177 43.8429284, 10.5075264 43.842948, 10.5074755 43.8430805, 10.5074411 43.8430975)",
      "start_date": "2018-05-14T15:41:28Z",
      "end_date": "2018-05-14T15:43:15Z",
      "vehicle_type": "bike",
      "vehicle_id": "16119b2d-1830-4961-a486-6eb0ac9b53b8",
      "emissions": {
        "so2": 0,
        "so2_saved": 0.168899936671776,
        "nox": 0,
        "nox_saved": 70.6308826081973,
        "co2": 0,
        "co2_saved": 27.1775352644585,
        "co": 0,
        "co_saved": 94.737509933169,
        "pm10": 0,
        "pm10_saved": 7.06308826081973
      },
      "costs": {
        "fuel_cost": 0,
        "time_cost": 0.237777777777778,
        "depreciation_cost": 0,
        "operation_cost": 0,
        "total_cost": 0.237777777777778
      },
      "health": {
        "calories_consumed": 8.68483333333333,
        "benefit_index": null
      }
    },
    {
      "id": 1261,
      "url": "http://10.0.1.66:8000/api/my-segments/1261/",
      "track": "http://10.0.1.66:8000/api/my-tracks/171/",
      "geom": "LINESTRING (10.5074284 43.8431234, 10.5074424 43.8431386, 10.5074446 43.843238)",
      "start_date": "2018-05-14T15:43:18Z",
      "end_date": "2018-05-14T15:43:28Z",
      "vehicle_type": "bus",
      "vehicle_id": null,
      "emissions": {
        "so2": 0.057531715057007,
        "so2_saved": 0,
        "nox": 84.2185856095868,
        "nox_saved": 0,
        "co2": 8.73436037683651,
        "co2_saved": 0,
        "co": 18.9723905790266,
        "co_saved": 0,
        "pm10": 3.56958141149157,
        "pm10_saved": 0
      },
      "costs": {
        "fuel_cost": 0.0392261693570502,
        "time_cost": 0.0222222222222222,
        "depreciation_cost": 0,
        "operation_cost": 0,
        "total_cost": 0.0614483915792724
      },
      "health": {
        "calories_consumed": 0,
        "benefit_index": null
      }
    }
  ],
  "created_at": "2018-08-30T15:19:02.903894Z",
  "vehicle_types": [
    "bike",
    "bus"
  ],
  "bikes": [
    {
      "short_uuid": "bV54J7zN",
      "url": "http://10.0.1.66:8000/api/my-bikes/bV54J7zN/"
    }
  ],
  "emissions": {
    "bus": {
      "co": 18.9723905790266,
      "co2": 8.73436037683651,
      "nox": 84.2185856095868,
      "so2": 0.057531715057007,
      "pm10": 3.56958141149157,
      "co_saved": 0,
      "co2_saved": 0,
      "nox_saved": 0,
      "so2_saved": 0,
      "pm10_saved": 0
    },
    "bike": {
      "co": 0,
      "co2": 0,
      "nox": 0,
      "so2": 0,
      "pm10": 0,
      "co_saved": 94.737509933169,
      "co2_saved": 27.1775352644585,
      "nox_saved": 70.6308826081973,
      "so2_saved": 0.168899936671776,
      "pm10_saved": 7.06308826081973
    },
    "totals": {
      "co": 18.9723905790266,
      "co2": 8.73436037683651,
      "nox": 84.2185856095868,
      "so2": 0.057531715057007,
      "pm10": 3.56958141149157,
      "co_saved": 94.737509933169,
      "co2_saved": 27.1775352644585,
      "nox_saved": 70.6308826081973,
      "so2_saved": 0.168899936671776,
      "pm10_saved": 7.06308826081973
    }
  },
  "costs": {
    "bus": {
      "fuel_cost": 0.0392261693570502,
      "time_cost": 0.0222222222222222,
      "total_cost": 0.0614483915792724,
      "operation_cost": 0,
      "depreciation_cost": 0
    },
    "bike": {
      "fuel_cost": 0,
      "time_cost": 0.237777777777778,
      "total_cost": 0.237777777777778,
      "operation_cost": 0,
      "depreciation_cost": 0
    },
    "totals": {
      "fuel_cost": 0.0392261693570502,
      "time_cost": 0.26,
      "total_cost": 0.29922616935705,
      "operation_cost": 0,
      "depreciation_cost": 0
    }
  },
  "health": {
    "bus": {
      "benefit_index": null,
      "calories_consumed": 0
    },
    "bike": {
      "benefit_index": null,
      "calories_consumed": 8.68483333333333
    },
    "totals": {
      "benefit_index": null,
      "calories_consumed": 8.68483333333333
    }
  }
}