Skip to content

Routes API

Ian Phillips edited this page Feb 20, 2022 · 11 revisions

Auth

Resources

User

GET: /user

controller function: index

GET: /user/create

controller function: create

POST: /user

controller function: store

parameters:

  • 'name' => ['required', 'string']
  • 'email' => ['required', 'email']
  • 'password' => ['required', 'password']
  • 'remember_token' => ['required', 'string']

GET: /user/{id}

controller function: show

GET: /user/{id}/edit

controller function: edit

PUT: /user/{id}

controller function: update

parameters:

  • 'name' => ['string'],
  • 'email' => ['email'],
  • 'password' => ['confirmed']

DELETE: /user/{id}

controller function: destroy

Rating

GET: /rating

controller function: index

GET: /rating/create

controller function: create

POST: /rating

controller function: store

parameters:

  • 'entry_id' => ['required', 'integer', 'exists:entries,id']
  • 'user_id' => ['required', 'integer', 'exists:users,id']
  • 'author_id' => ['required', 'integer', 'exists:users,id']
  • 'rating_data' => { creative: bool, flexible: bool, friendly: bool, helpful: bool, prepared: bool, }

GET: /rating/{id}

controller function: show

GET: /rating/{id}/edit

controller function: edit

PUT: /rating/{id}

controller function: update

parameters:

  • 'entry_id' => ['required', 'integer', 'exists:entries,id']
  • 'user_id' => ['required', 'integer', 'exists:users,id']
  • 'author_id' => ['required', 'integer', 'exists:users,id']
  • 'rating_data' => { creative: bool, flexible: bool, friendly: bool, helpful: bool, prepared: bool, }

DELETE: /rating/{id}

controller function: destroy

Adventure

GET: /adventure

controller function: index

GET: /adventure/create

controller function: create

POST: /adventure

controller function: store

parameters:

  • 'title' => ['required', 'string']
  • 'code' => ['required', 'string']
  • 'description' => ['required', 'string']

GET: /adventure/{id}

controller function: show

GET: /adventure/{id}/edit

controller function: edit

PUT: /adventure/{id}

controller function: update

parameters:

  • 'title' => ['required', 'string']
  • 'code' => ['required', 'string']
  • 'description' => ['required', 'string']

DELETE: /adventure/{id}

controller function: destroy

Entry

GET: /entry

controller function: index

GET: /entry/create

controller function: create

POST: /entry

controller function: store

parameters:

  • 'user_id' => ['required', 'integer', 'exists:users,id']
  • 'adventure_id' => ['required', 'integer', 'exists:adventures,id']
  • 'campaign_id' => ['sometimes', 'integer', 'exists:campaigns,id']
  • 'character_id' => ['sometimes', 'integer', 'exists:characters,id']
  • 'event_id' => ['sometimes', 'integer', 'exists:events,id']
  • 'dungeon_master_id' => ['sometimes', 'integer', 'exists:users,id'],
  • 'dungeon_master' => ['sometimes', 'string']
  • 'date_played' => ['required', 'date']
  • 'location' => ['sometimes', 'string']
  • 'type' => ['required', 'string']
  • 'levels' => ['sometimes', 'integer']
  • 'gp' => ['sometimes', 'numeric', 'between:-999999999999999999999999999999.99,999999999999999999999999999999.99']
  • 'downtime' => ['sometimes', 'integer']

GET: /entry/{id}

controller function: show

GET: /entry/{id}/edit

controller function: edit

PUT: /entry/{id}

controller function: update

parameters:

  • 'adventure_id' => ['required', 'integer', 'exists:adventures,id']
  • 'campaign_id' => ['sometimes', 'integer', 'exists:campaigns,id']
  • 'character_id' => ['sometimes', 'integer', 'exists:characters,id']
  • 'event_id' => ['sometimes', 'integer', 'exists:events,id']
  • 'dungeon_master_id' => ['sometimes', 'integer', 'exists:users,id']
  • 'dungeon_master' => ['sometimes', 'string']
  • 'date_played' => ['required', 'date']
  • 'location' => ['sometimes', 'string']
  • 'type' => ['required', 'string']
  • 'levels' => ['sometimes', 'integer']
  • 'gp' => ['sometimes', 'numeric', 'between:-999999999999999999999999999999.99,999999999999999999999999999999.99']
  • 'downtime' => ['sometimes', 'integer']

DELETE: /entry/{id}

controller function: destroy

Bulk Entry

POST: /entry-bulk

controller function: store

parameters:

  • 'character_id' => ['required', 'exists:characters,id']
  • 'adventure_id' => ['nullable', 'exists:adventures,id']
  • 'start_date' => ['required', 'date']
  • 'end_date' => ['nullable', 'date']
  • 'frequency' => ['required', 'numeric']

DM Entry

GET: /dm-entry

controller function: index

GET: /dm-entry/create

controller function: create Shows the create from for DM entries, pass prop "adventures"

Character

GET: /character

controller function: index

GET: /character/create

controller function: create

POST: /character

controller function: store

parameters:

  • 'name' => ['required', 'string']
  • 'race' => ['required', 'string']
  • 'class' => ['required', 'string']
  • 'level' => ['required', 'digits_between:1,20']
  • 'faction' => ['required', 'string']
  • 'downtime' => ['required', 'integer']
  • 'status' => ['required', 'string']

GET: /character/{id}

controller function: show

GET: /character/{id}/edit

controller function: edit

PUT: /character/{id}

controller function: update

parameters:

  • 'name' => ['required', 'string']
  • 'race' => ['required', 'string']
  • 'class' => ['required', 'string']
  • 'level' => ['required', 'digits_between:1,20']
  • 'faction' => ['required', 'string']
  • 'downtime' => ['required', 'integer']
  • 'status' => ['required', 'string']

DELETE: /character/{id?}

controller function: destroy nb: id in the url is optional here. to do multiple characters deleting see parameters below

parameters:

  • 'characters' => ['nullable', 'array']

Item

GET: /item

controller function: index

GET: /item/create

controller function: create

POST: /item

controller function: store

parameters:

  • 'entry_id' => ['required', 'integer', 'exists:entries,id']
  • 'character_id' => ['required', 'integer', 'exists:characters,id']
  • 'name' => ['required', 'string']
  • 'rarity' => ['required', 'in:common,uncommon,rare,very_rare,legendary']
  • 'tier' => ['required', 'string']
  • 'description' => ['required', 'string']
  • 'counted' => ['required', 'string']
  • 'author_id' => ['required', 'integer', 'exists:users,id']

GET: /item/{id}

controller function: show

GET: /item/{id}/edit

controller function: edit

PUT: /item/{id}

controller function: update

parameters:

  • 'entry_id' => ['required', 'integer', 'exists:entries,id']
  • 'character_id' => ['required', 'integer', 'exists:characters,id']
  • 'name' => ['required', 'string']
  • 'rarity' => ['required', 'in:common,uncommon,rare,very_rare,legendary']
  • 'tier' => ['required', 'string']
  • 'description' => ['required', 'string']
  • 'counted' => ['required', 'string']
  • 'author_id' => ['required', 'integer', 'exists:users,id']

DELETE: /item/{id}

controller function: destroy

Trade

GET: /trade

controller function: index

GET: /trade/create

controller function: create

POST: /trade

controller function: store

parameters:

  • 'item_id' => ['required', 'integer', 'exists:items,id']
  • 'character_id' => ['required', 'integer', 'exists:characters,id']
  • 'requested_items' => ['required', 'string']
  • 'description' => ['required', 'string']
  • 'status' => ['required', 'in:open,closed']

GET: /trade/{id}

controller function: show

GET: /trade/{id}/edit

controller function: edit

PUT: /trade/{id}

controller function: update

parameters:

  • 'item_id' => ['required', 'integer', 'exists:items,id']
  • 'character_id' => ['required', 'integer', 'exists:characters,id']
  • 'requested_items' => ['required', 'string']
  • 'description' => ['required', 'string']
  • 'status' => ['required', 'in:open,closed']

DELETE: /trade/{id}

controller function: destroy

Trade Fulfillment

POST: /trade-fulfillment/{id}

controller function: store

parameters:

  • 'character_id' => ['required', 'integer', 'exists:characters,id'],
  • 'offered_item_id' => ['required', 'integer', 'exists:items,id'], }

Event

GET: /event

controller function: index

GET: /event/create

controller function: create

POST: /event

controller function: store

parameters:

  • 'league_id' => ['required', 'integer', 'exists:leagues,id']
  • 'title' => ['required', 'string']
  • 'description' => ['required', 'string']
  • 'location' => ['required', 'string']

GET: /event/{id}

controller function: show

GET: /event/{id}/edit

controller function: edit

PUT: /event/{id}

controller function: update

parameters:

  • 'league_id' => ['required', 'integer', 'exists:leagues,id']
  • 'title' => ['required', 'string']
  • 'description' => ['required', 'string']
  • 'location' => ['required', 'string']

DELETE: /event/{id}

controller function: destroy

Session

GET: /session

controller function: index

GET: /session/create

controller function: create

POST: /session

controller function: store

parameters:

  • 'event_id' => ['required', 'integer', 'exists:events,id']
  • 'adventure_id' => ['required', 'integer', 'exists:adventures,id']
  • 'dungeon_master_id' => ['required', 'integer', 'exists:users,id']
  • 'table' => ['required', 'string']
  • 'start_time' => ['required']

GET: /session/{id}

controller function: show

GET: /session/{id}/edit

controller function: edit

PUT: /session/{id}

controller function: update

parameters:

  • 'event_id' => ['required', 'integer', 'exists:events,id']
  • 'adventure_id' => ['required', 'integer', 'exists:adventures,id']
  • 'dungeon_master_id' => ['required', 'integer', 'exists:users,id']
  • 'table' => ['required', 'string']
  • 'start_time' => ['required']

DELETE: /session/{id}

controller function: destroy

League

GET: /league

controller function: index

GET: /league/create

controller function: create

POST: /league

controller function: store

parameters:

  • 'name' => ['required', 'string']
  • 'description' => ['required', 'string']

GET: /league/{id}

controller function: show

GET: /league/{id}/edit

controller function: edit

PUT: /league/{id}

controller function: update

parameters:

  • 'name' => ['required', 'string']
  • 'description' => ['required', 'string']

DELETE: /league/{id}

controller function: destroy

Role

GET: /role

controller function: index

GET: /role/create

controller function: create

POST: /role

controller function: store

parameters:

  • 'name' => ['required', 'string']
  • 'type' => ['required', 'string']

GET: /role/{id}

controller function: show

GET: /role/{id}/edit

controller function: edit

PUT: /role/{id}

controller function: update

parameters:

  • 'name' => ['required', 'string']
  • 'type' => ['required', 'string']

DELETE: /role/{id}

controller function: destroy

Campaign

GET: /campaign

controller function: index

GET: /campaign/create

controller function: create

POST: /campaign

controller function: store

parameters:

  • 'adventure_id' => ['required', 'integer', 'exists:adventures,id']
  • 'title' => ['required', 'string']
  • 'character_id' => ['sometimes','exists:characters,id']

GET: /campaign/{id}

controller function: show

GET: /campaign/{id}/edit

controller function: edit

PUT: /campaign/{id}

controller function: update

parameters:

  • 'adventure_id' => ['required', 'integer', 'exists:adventures,id']
  • 'title' => ['required', 'string']

DELETE: /campaign/{id}

controller function: destroy

Beyond Import

GET: /beyond-import

controller function: index

POST: /beyond-import

controller function: store

parameters:

  • 'beyond_link' => "regex:/^(https://www.dndbeyond.com).+[0-9]+$/i"

Adventures League Import

GET: /adventures-league-import

controller function: index

POST: /adventures-league-import

controller function: store

parameters:

  • 'logs' => file, csv format

Character Bulk Attach DM Entry

PUT: /attach-entry-to-character/{character_id}

controller function: update

parameters:

  • 'dm_entry_ids' => required integer of distinct and existing entry ids

Campaign Registration

GET: /campaign-registration/create

controller function: create

POST: /campaign-registration

controller function: store

parameters:

  • 'character_id' => ['nullable','sometimes','exists:characters,id']
  • 'code' => ['required', 'string']
Clone this wiki locally