An open API service indexing awesome lists of open source software.

https://github.com/focus-shift/urlaubsverwaltung-extension-api

Urlaubsverwaltung Extension Java API
https://github.com/focus-shift/urlaubsverwaltung-extension-api

java urlaubsverwaltung

Last synced: 6 months ago
JSON representation

Urlaubsverwaltung Extension Java API

Awesome Lists containing this project

README

          

# Urlaubsverwaltung Extension Java API

This project provides DTOs and service interfaces to write own extensions for [Urlaubsverwaltung](https://github.com/urlaubsverwaltung/urlaubsverwaltung).

## Requirements

This project requires Java 21 compiler.

## Usage

Include Urlaubsverwaltung Extension Java API to your project:

```xml

de.focus-shift.urlaubsverwaltung.extension.api
service
...

```

After that, create a java class and use one of the *ServiceExtension classes like `PersonServiceExtension`:

```java
package my.custom.package;

import java.util.Set;
import java.util.UUID;

public class PersonServiceExtensionDemo {

private final PersonServiceExtension personServiceExtension;

public PersonServiceExtensionTest(PersonServiceExtension personServiceExtension) {
this.personServiceExtension = personServiceExtension;
}

void doSomething() {
PersonDTO myPerson = PersonDTO.builder()
.firstName("Marlene")
.lastName("Muster")
.username(UUID.randomUUID().toString())
.email("office@example.org")
.permissions(Set.of(RoleDTO.OFFICE))
.build();

PersonDTO createdPerson = personServiceExtension.create(myPerson);
}
}
```

Package your extension and run Urlaubsverwaltung with [PropertiesLauncher](https://docs.spring.io/spring-boot/docs/current/reference/html/executable-jar.html#appendix.executable-jar.property-launcher)

## Implementation Status

The following extension points are provided:

* [ ] absence
* [ ] account
* [x] application
* [ ] department
* [ ] overtime
* [x] person
* [ ] publicholiday
* [ ] settings
* [x] sicknote
* [ ] user
* [ ] workingtime

## Compatibility

| Extension API Version | Urlaubsverwaltung Version | Java Version |
|-----------------------|---------------------------|--------------|
| 3.x.x | 5.x.x | 21.x |
| 2.x.x | 5.x.x | 21.x |
| 1.x.x | 5.x.x | 21.x |
| 0.x.x | 4.x.x | 11.x |

## License

Urlaubsverwaltung Extension Java API is Open Source software released under the [Apache License 2.0](LICENSE).