burningmantech / burning-man-innovators

Use the issues in this repo for feature requests and bug reports relating to datasets and apis provided at https://innovate.burningman.org
3 stars 0 forks source link

Include Village-Camp relationship in CAMP API resultset #4

Closed warpfactorfive closed 3 weeks ago

warpfactorfive commented 5 years ago

Is your feature request related to a problem? Please describe. The BMORG is urging (requiring?) camps in a village to also submit questionaires, presumably due to their increasing popularity with both camps, villages, and the placers. Using the camp dataset, there currently is no standard way of identifying the relationship between camps and villages.. Sometimes this data is included in the camp and village description, but that doesn't help any software attempting to identify this relationship. This relation is important because it would allow the presentation of village data, coalesced from the member camps' data, even when the data (such as events) have a' host UID of a camp.

*Describe the solution you'd like** Provide a means to identify the camps which are in a village. Two alternatives come to mind:

  1. In the dataset for a village, include the member camp UIDs.
  2. In the dataset for camps, include the parent village uid if the camp is in a village.

Alternative implementations

  1. Instead of embedding this data in the CAMP dataset, a new API call could provide the data tying villages and camps together.
  2. Instead of embedding this data in the structure currently used for camps/villages, add a second datastructure to the camp API resultset. Currently the response is an (unnamed) array of camps and villages. Instead, the top-level JSON might look like this:
    
    {
    "camps":   [
                         <existing JSON structure of camp data>
                     ],
    "villages": [
                          <JSON structure of village data, including new field for mapping to camps>
                     ]              
    }


**Additional context**

Here are two sample implementations, one for each proposal.  Changes are in bold & italic

 {
        "uid": "a1X0V000003WtAkUAK",
        "year": 2018,
        "name": "La Calaca Village",
        "url": "https://www.youcaring.com/pinata-s-revenge-theme-camp-530050",
        "contact_email": "marysrevengellc@gmail.com",
        "hometown": "Reno",
         **_"villages_camps":"a1X0V000003WtAkUAL,a1X0V000003WtAkUAM,a1X0V000003WtAkUAN"_**
        "description": "La Calaca Village is comprised of three sister theme camps: Pi\u00f1atas Revenge (founding camp), Camp La Calaca (2013-present) and our newest addition 'Maqinas de Ideas' (2017-present).  La Calaca Village offers both theme camps and artist support on the playa.   We pride ourselves on being makers and healers.  -- Come for the healing, stay for the hedonism -- We love our community in the 3:00 sector, and our interactivity is aimed at making new friends each year in our neighborhood and throughout the playa.  Experience the ultimate relaxation of the 'Safety Net' or the extravagant, weightless jumps on the 'Safety Swing'.  Spiritual healers, yogis and massage artists await you in our Healing Plaza.  Come see the \"Mini-playa\" exhibit featuring a giant, Burning Woman! seek us out at 3:00 and the end!",
        "location": {
            "string": "3:00 & L",
            "frontage": "3:00",
            "intersection": "L",
            "intersection_type": "&",
            "dimensions": "100+ x 550"
        },
        "location_string": "3:00 & L"
    },

=====================

    {
        "uid": "a1X0V000002rkb0UAA",
        "year": 2017,
        "name": "Time To Burn",
        "url": "https://www.facebook.com/TimeToBurnApp",
        "contact_email": null,
        "hometown": "San Diego",
        **"village":"a1X0V000003WtAkUAL",**
        "description": "The \"Must Have App\" camp returns for high-tech workshops, gifting, LED repair workshop and shenanigans.  Located in Gaylactic Invaders Village",
        "location": {
            "string": "G & 7:45",
            "frontage": "G",
            "intersection": "7:45",
            "intersection_type": "&",
            "dimensions": "x"
        },
        "location_string": "G & 7:45"
    },
lostways commented 3 weeks ago

We discussed this with Placement and the concept of Villages is going away so this won't be implemented.