Zeeshaun c718fb343d
Some checks failed
Deploy Promiscuity Auth API / deploy (push) Successful in 47s
Deploy Promiscuity Crafting API / deploy (push) Has been cancelled
Deploy Promiscuity Inventory API / deploy (push) Has been cancelled
Deploy Promiscuity Locations API / deploy (push) Has been cancelled
Deploy Promiscuity Mail API / deploy (push) Has been cancelled
Deploy Promiscuity World API / deploy (push) Has been cancelled
Deploy Promiscuity Character API / deploy (push) Has been cancelled
k8s smoke test / test (push) Has been cancelled
Kill switch
2026-04-01 20:22:05 +00:00

2.4 KiB

LocationsApi document shapes

This service expects JSON request bodies for location creation and updates and stores location documents in MongoDB.

Inbound JSON documents

  • CreateLocationRequest (POST /api/locations)
    {
      "name": "string",
      "coord": {
        "x": 0,
        "y": 0
      }
    }
    
  • UpdateLocationRequest (PUT /api/locations/{id})
    {
      "name": "string"
    }
    
    coord cannot be updated.
  • ResetWorldRequest (POST /api/locations/reset-world)
    {
      "confirmDeleteAllNonOriginLocations": true,
      "confirmationPhrase": "RESET WORLD TO ORIGIN"
    }
    
    Both fields are required for the request to be accepted.
  • GatherResourceRequest (POST /api/locations/{id}/gather)
    {
      "characterId": "string (Character ObjectId)",
      "resourceKey": "wood"
    }
    

Stored documents (MongoDB)

  • Location
    {
      "id": "string (ObjectId)",
      "name": "string",
      "coord": {
        "x": 0,
        "y": 0
      },
      "biomeKey": "plains",
      "resources": [
        {
          "itemKey": "wood",
          "remainingQuantity": 100,
          "gatherQuantity": 3
        }
      ],
      "createdUtc": "string (ISO-8601 datetime)"
    }
    

Outbound JSON documents

  • GatherResourceResponse (POST /api/locations/{id}/gather)
    {
      "locationId": "string (ObjectId)",
      "characterId": "string (ObjectId)",
      "resourceKey": "wood",
      "quantityGranted": 3,
      "remainingQuantity": 97,
      "inventoryResponseJson": "string (raw InventoryApi response JSON)"
    }
    
  • ResetWorldResponse (POST /api/locations/reset-world)
    {
      "deletedLocationCount": 42,
      "remainingLocationCount": 2,
      "movedCharacterCount": 5,
      "reassignedInventoryItemCount": 19,
      "origin": {
        "id": "string (ObjectId)",
        "name": "Origin",
        "coord": {
          "x": 0,
          "y": 0
        },
        "biomeKey": "plains",
        "elevation": 0,
        "resources": [],
        "locationObject": null,
        "locationObjectResolved": true,
        "createdUtc": "string (ISO-8601 datetime)"
      },
      "limbo": {
        "id": "string (ObjectId)",
        "name": "World Limbo",
        "coord": {
          "x": -2000000000,
          "y": -2000000000
        },
        "biomeKey": "plains",
        "elevation": 0,
        "resources": [],
        "locationObject": null,
        "locationObjectResolved": true,
        "createdUtc": "string (ISO-8601 datetime)"
      }
    }