API Endpoint

To call the API, use the following route:

https://cis-iis2.temple.edu/Fall2025/CIS3342_tuq23078/WebAPI/XXXXXX


[GET] VictoriaAPIs/Hotels/GetHotels/{city}/{state}

Returns: A list of Hotel objects || Empty List


Parameters: city=string, state=string
Description: Returns a list of hotels and their properties based on the given city and state. Returns an empty list if no hotels are found.

[GET] VictoriaAPIs/Hotels/GetRoomsByHotel/{hotelID}

Returns: A list of Hotel Room Objects || Empty List


Parameters: hotelID=integer
Description: Returns a list of hotel rooms and their properities based on the given hotelID NO MATTER if they are booked or not. Return an empty list if no rooms are found.

[GET] VictoriaAPIs/Hotels/GetRoomsByHotels/{hotelID}/{checkInDate}/{checkOutDate}

Returns: A list of Hotel Room objects || Empty List


Parameters: hotelID=integer, checkInDate=DateTime('MM-dd-YYYY'), checkOutDate=DateTime('MM-dd-YYYY')
Description: Returns a list of hotel rooms and their properities based on the given hotelID. Return ONLY available rooms based on the given checkin date and the checkout date. Return an empty list if no rooms are found.

[POST] VictoriaAPIs/Hotels/GetRoomsByHotels/Hotel

Returns: A list of Hotel Room objects || Empty List


Parameters: Hotel=A single JSON of a Hotel Object (View the schemas below)
Description: Returns a list of hotel rooms and their properities based on the given hotelID NO MATTER if they are booked or not. Return an empty list if no rooms are found.

[POST] VictoriaAPIs/Hotels/FindRooms/Amenities

Returns: A list of hotel room objects || Empty List


Parameters: Amenities=A JSON list of Amenities, city=string, state=string
Description: Returns a list of hotel room objects based on the city, state, and amenities provided. Filters the rooms based on if they have ALL the given amenities. Returns an empty list if no rooms are found.

[POST] VictoriaAPIs/Hotels/FindRooms/{city}/{state}

Returns: A list of hotel room objects || Empty List


Parameters: Amenities=A JSON list of strings represeting Amenity names, city=string, state=string
Description: Returns a list of hotel room objects based on the city, state, and amenities provided. Filters the rooms based on if they have ALL the given amenities. All rooms are returned NO MATTER if they are available or not. Returns an empty list if no rooms are found.

[POST] VictoriaAPIs/Hotels/FindRooms/{city}/{state}/{checkInDate}/{checkOutDate}

Returns: A list of hotel room objects || Empty List


Parameters: Amenities=A JSON list of strings represeting Amenity names, city=string, state=string, checkInDate=DateTime('MM-dd-YYYY'), checkOutDate=DateTime('MM-dd-YYYY')
Description: Returns a list of hotel room objects based on the city, state, and amenities provided. Additionally return only available rooms based on the checkin and checkout dates. Filters the rooms based on if they have ALL the given amenities. Returns an empty list if no rooms are found.

[POST] VictoriaAPIs/Hotels/FindRoomsByHotel/{hotelID}/{city}/{state}

Returns: A list of hotel room objects || Empty List


Parameters: Amenities=A JSON list of strings representing Amenity names, city=string, state=string, hotelID=integer
Description: Returns a list of hotel room objects based on the city, state, and amenities provided. Filters the rooms based on if they have ALL the given amenities. All rooms are returned NO MATTER if they are available or not. Returns an empty list if no rooms are found.

[POST] VictoriaAPIs/Hotels/FindRoomsByHotel/{hotelID}/{city}/{state}/{checkInDate}/{checkOutDate}

Returns: A list of hotel room objects || Empty List


Parameters: Amenities=A JSON list of strings representing Amenity names, city=string, state=string, hotelID=integer,checkInDate=DateTime('MM-dd-YYYY'), checkOutDate=DateTime('MM-dd-YYYY')
Description: Returns a list of hotel room objects based on the city, state, and amenities provided. Additionally return only available rooms based on the checkin and checkout dates. Filters the rooms based on if they have ALL the given amenities. Returns an empty list if no rooms are found.

[POST] VictoriaAPIs/Hotels/ReserveHotelRoom/ExternalCustomer

Returns: A BookedHotelRoom object that displays the reservationID(HotelBookingID), the customer information, the hotelroom information, and the total cost. (See schema below)


Parameters: hotelID=integer, hotelRoomID=integer, travelSiteID=integer, travelSiteAPIToken=integer, customer=JSON of the customer object
Description: Reserves a hotel room based on the hotelID and hotelRoomID. Requires a travelSiteID and travelSiteAPIToken, which can be generated by the GenerateAPIToken GET Request. This request is used for customers outside of the Duolinguist Web Application.

[POST] VictoriaAPIs/Hotels/ReserveHotelRoom/RegisteredUser

Returns: HotelBookingID integer || -9999 (Unsuccessful)


Parameters: startDate=DateTime('MM-dd-YYYY'), endDate=DateTime('MM-dd-YYYY'), packageID=integer, HotelRoom=JSON of a hotel room object
Description: Reserves a hotel room for registered users using the Duolinguist Web Application.

[GET] VictoriaAPIs/Hotels/GetHotelRoomReservation/ExternalCustomer

Returns: A HotelRoomBooking Object || -9999 (Unsuccessful)


Parameters: reservationID=integer, travelSiteID=integer, apiToken=integer
Description: Reserves a hotel room for registered users using the Duolinguist Web Application.

[GET] VictoriaAPIs/Hotels/GenerateAPIToken

Returns: DeveloperKit Object


Parameters: username=string, password=string, travelSiteURL=string
Description: Creates a developer kit that includes the travelSiteAPI and the travelSiteID.

[GET] VictoriaAPIs/Hotels/AuthenticateAPIToken

Returns: Boolean Value


Parameters: travelSiteID=integer, apiToken=integer
Description: Verifies that the travelSiteID and the apiToken is valid.

[DELETE] VictoriaAPIs/Hotels/CancelReservation/ExternalCustomer/{reservationID}

Returns: Boolean Value


Parameters: reservationID=integer, travelSiteID=integer, apiToken=integer
Description: Cancels an external customer's reservation if the checkInDate has not passed yet.

[PUT] VictoriaAPIs/Hotels/UpdateCustomer/ExternalCustomer/

Returns: Boolean Value


Parameters: travelSiteID=integer, apiToken=integer, Customer=Customer Object as JSON
Description: Update the information of an external customer not from the Duolinguist Web Application.


Object Schemas

View this section to see the properites of the objects.

BookedHotelRoom

Description: Represent a reservation in the system. Includes the hotelroom object and customer object.


Customer Object (See below)
HotelRoom Object (See below)
CheckInDate DateTime
CheckOutDate Datetime
TotalCost Double
HotelBookingID Integer

Customer

Description: Represent a customer not from the Duolinguist Web Application


UserID Integer
Password String
FirstName String
LastName String
Email String
Phone String
Address String
City String
State String
ZipCode String
Country String
StartDate DateTime
EndDate DateTime

DeveloperKit

Description: Contains the API tokens and TravelSiteID needed to call the Reserve API


TravelSiteID Integer
TravelSiteAPI Token Integer
Username String
Password String
TravelSiteURL String

Hotel

Description: Represents a Hotel


HotelID Integer
HotelName String
HotelPhone String
HotelEmail String
HotelAddress String
HotelCity String
HotelState String
HotelZip String
HotelCountry String
HotelImage String
HotelDescription String
HotelRating Integer
HotelRoomCount Integer

HotelAmenity

Description: Represents a Hotel Amenity


AmenityID Integer
AmenityName String
AmenityDescription String
AmenityImage String
AmenityCost Double

HotelRoom

Description: Represents a Hotel Room


HotelRoomID Integer
RoomOccupancy Integer
BedType String
CostPerNight Double
BaseCost Double
LuxuryType String
HotelRoomImage String
HotelRoomDescription String
ListHotelAmenities List of HotelAmenity