https://github.com/philip-bui/libcal-client
Java Library for accessing the LibCal API.
https://github.com/philip-bui/libcal-client
booking-system github-actions github-package-registry java libcal
Last synced: 6 months ago
JSON representation
Java Library for accessing the LibCal API.
- Host: GitHub
- URL: https://github.com/philip-bui/libcal-client
- Owner: philip-bui
- License: mit
- Created: 2019-11-02T04:05:14.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-11-16T02:57:04.000Z (over 3 years ago)
- Last Synced: 2025-01-07T16:18:16.510Z (over 1 year ago)
- Topics: booking-system, github-actions, github-package-registry, java, libcal
- Language: Java
- Homepage:
- Size: 21.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LibCal Client
[](https://github.com/philip-bui/libcal-client/actions)
[LibCal](https://ask.springshare.com/libcal) is an online booking system used to reserve, check bookings and availabilities, and manage booking spaces.
## Requirements
- Retrieve a valid ClientID and ClientSecret from your Admin with the necessary API permissions.
- Retrieve the host of your LibCal instance. E.g https://usyd.libcal.com.
## Installation
### Maven
Set up Apache Maven to authenticate to GitHub Package Registry by editing your ~/.m2/settings.xml. For more information, see "[Authenticating to GitHub Package Registry](https://help.github.com/en/github/managing-packages-with-github-package-registry/configuring-apache-maven-for-use-with-github-package-registry#authenticating-to-github-package-registry)".
```xml
com.philipbui.libcal
libcal-client
1.0.0
```
### Gradle
Set up Gradle to authenticate to GitHub Package Registry by editing your build.gradle or build.gradle.kts file. For more information, see "[Authenticating to GitHub Package Registry](https://help.github.com/en/github/managing-packages-with-github-package-registry/configuring-gradle-for-use-with-github-package-registry#authenticating-to-github-package-registry)".
```gradle
dependencies {
implementation("com.philipbui.libcal:libcal-client:1.0.0")
}
```
## Usage
```java
LibCalClient libCalClient = new LibCalClient();
String accessToken = libCalClient.getAccessToken(host, clientID, clientSecret).getAccessToken();
SpaceLocation[] spaceLocations = libCalClient.getSpaceLocations(host, accessToken);
// Or use a BookingService to do common booking functionality.
LibCalBookingService libCalBookingService = new LibCalBookingService(host, libCalClient, clientID, clientSecret);
libCalBookingService.getBookableSpaceIDs(categoryIDs, spaceIDs, accessToken, dateStart, dateEnd);
```
## Features
### API
- [X] Locations
- [ ] Form for Space ID
- [ ] Form Question by Question IDs
- [X] Location Categories by Location IDs
- [X] Location Category Spaces
- [X] Reserve Space by Space ID
- [ ] Booking Information by Booking ID
- [ ] All Bookings Information by Date
- [X] Cancel Space Booking
- [ ] All Confirmed Bookings Information
### Service
- [ ] Automatically retrieve new Access Tokens on expire.
- [X] Get available Spaces for Category.
- [X] Get all Spaces and their descriptions for every Location or Category.
## License
LibCal Client is available under the MIT license. [See LICENSE](https://github.com/philip-bui/libcal-client/blob/master/LICENSE) for details.