Skip to content

AmmunitionCompatibilityController

Mateusz Andrzejewski edited this page Jun 24, 2025 · 1 revision

CpRedAmmunitionCompatibilityController

This page contains documentation for the CpRedAmmunitionCompatibilityController class, which handles ammunition compatibility management for Cyberpunk Red.

Basic Information

Base Path: /api/v1/authorized
Package: `dev.goral.rpghandyhelper.rpgSystems.cpRed.compatibility.ammunition;

Authentication

All requests to this controller require an XSRF token to be included in the headers.
Example:

headers: {
  "X-XSRF-TOKEN": "<csrfToken>"
}

Endpoint Summary

HTTP Method Path Description
GET /compatibility/ammunition/all Returns basic info about all ammunition compatibility
GET /compatibility/ammunition/{id} Returns detailed information about a specific ammunition compatibility by ID
GET /compatibility/ammunition/forWeapon Returns a list of all ammunition compatibility by weapon
GET /compatibility/ammunition/forAmmunition Returns a list of all ammunition compatibility by ammunition
POST /compatibility/ammunition/add Adds a new ammunition compatibility to the system
PUT /compatibility/ammunition/update/{id} Update ammunition compatibility data

Field Descriptions

Request Body Fields (AmmunitionCompatibilityDto)

  • Id (Long): Unique identifier for the ammunition compatibility. Required.
  • weaponId (Long): ID of the weapon this ammunition is compatible with. Required.
  • ammunitionId (Long): ID of the ammunition this compatibility applies to. Required.
  • isWeaponCustom (Boolean): Indicates if the weapon is custom. Required.
  • isAmmunitionCustom (Boolean): Indicates if the ammunition is custom. Required.

Response Fields

  • message (String): Describes the result of the operation.
  • error (Integer): HTTP status code.
  • timestamp (String): Time the response was generated.
  • ammunitionCompatibility (Object): A single ammunition compatibility object (if applicable).
  • ammunitionCompatibilityList (Array): List of ammunition compatibility (if applicable).

Endpoint Details

Get All Ammunition Compatibility

Method: GET
Path: /compatibility/ammunition/all

Response

{
  "weaponAmmunitionCompatibility": [],
  "message": "Lista kompatybilności amunicji została pobrana",
  "error": 200,
  "timestamp": "..."
}

Possible Errors

  • 401 Unauthorized: User is not logged in.

Get Ammunition Compatibility by ID

Method: GET
Path: /compatibility/ammunition/{id}

Response

{
  "weaponAmmunitionCompatibility": {
    "id": 1,
    "weaponId": 1,
    "ammunitionId": 1,
    "ammunitionCustom": true,
    "weaponCustom": true
  },
  "message": "Kompatybilność amunicji została pobrana",
  "error": 200,
  "timestamp": "..."
}

Possible Errors

  • 400 Bad Request: Invalid ammunition compatibility ID.
  • 401 Unauthorized: User is not logged in.
  • 404 Not Found: Ammunition compatibility with the specified ID does not exist.

Get Ammunition Compatibility by Weapon

Method: GET
Path: /compatibility/ammunition/forWeapon

Request

{
  "weaponId": 1,
  "weaponCustom": true
}

Response

{
  "weaponAmmunitionCompatibility": [
    {
      "id": 1,
      "weaponId": 1,
      "ammunitionId": 1,
      "ammunitionCustom": true,
      "weaponCustom": true
    }
  ],
  "message": "Kompatybilność amunicji dla broni została pobrana",
  "error": 200,
  "timestamp": "..."
}

Possible Errors

  • 400 Bad Request: User not authenticated.
  • 401 Unauthorized: User not logged in.
  • 404 Not Found: Invalid weapon data.

Get Ammunition Compatibility by Ammunition

Method: GET
Path: /compatibility/ammunition/forAmmunition

Request

{
  "ammunitionId": 1,
  "ammunitionCustom": true
}

Response

{
  "weaponAmmunitionCompatibility": [
    {
      "id": 1,
      "weaponId": 1,
      "ammunitionId": 1,
      "ammunitionCustom": true,
      "weaponCustom": true
    }
  ],
  "message": "Kompatybilność amunicji dla broni została pobrana",
  "error": 200,
  "timestamp": "..."
}

Possible Errors

  • 400 Bad Request: User not authenticated.
  • 401 Unauthorized: User not logged in.
  • 404 Not Found: Invalid ammunition data.

Add New Ammunition Compatibility

Method: POST
Path: /compatibility/ammunition/add

Request

{
  "ammunitionId": 1,
  "weaponId": 1,
  "weaponCustom": true,
  "ammunitionCustom": true
}

Response

{
  "message": "Kompatybilność amunicji została dodana.",
  "error": 200,
  "timestamp": "..."
}

Possible Errors

  • 400 Bad Request: User not authenticated.
  • 401 Unauthorized: User not logged in.
  • 404 Not Found: Invalid ammunition compatibility data.

Update Ammunition Compatibility

Method: PUT
Path: /compatibility/ammunition/update/{id}

Request

{
  "ammunitionId": 1,
  "weaponId": 1,
  "weaponCustom": false,
  "ammunitionCustom": false
}

Response

{
  "message": "Kompatybilność amunicji została zmieniona.",
  "error": 200,
  "timestamp": "..."
}

Possible Errors

  • 400 Bad Request: Invalid ammunition compatibility ID or data.
  • 401 Unauthorized: User not logged in.
  • 404 Not Found: Ammunition compatibility with the specified ID does not exist.

Common Troubleshooting Tips

  • Missing XSRF Token: Ensure the X-XSRF-TOKEN header is included in every request.
  • Invalid Fields: Double-check the request body for missing or invalid fields.
  • Permission Issues: Verify that the user has the necessary permissions for the requested operation.

Clone this wiki locally