Skip to content

Commit d0c33c4

Browse files
author
Lars Grahmann
committed
add repositories
1 parent 5ed8ffe commit d0c33c4

21 files changed

+519
-237
lines changed

backend/src/main/java/org/eventplanner/config/DatabaseConfig.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import org.springframework.context.annotation.Bean;
88
import org.springframework.context.annotation.Configuration;
9-
import org.springframework.context.annotation.PropertySource;
109
import org.springframework.core.env.Environment;
1110
import org.springframework.jdbc.datasource.DriverManagerDataSource;
1211
import org.springframework.orm.jpa.JpaTransactionManager;
@@ -33,7 +32,12 @@ public DataSource dataSource() {
3332
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
3433
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
3534
em.setDataSource(dataSource());
36-
em.setPackagesToScan("org.eventplanner.events.adapter.jpa");
35+
em.setPackagesToScan(
36+
"org.eventplanner.events.adapter.jpa",
37+
"org.eventplanner.positions.adapter.jpa",
38+
"org.eventplanner.qualifications.adapter.jpa",
39+
"org.eventplanner.users.adapter.jpa"
40+
);
3741

3842
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
3943
em.setJpaVendorAdapter(vendorAdapter);

backend/src/main/java/org/eventplanner/events/adapter/jpa/EventJpaEntity.java

+50-42
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,29 @@
11
package org.eventplanner.events.adapter.jpa;
22

3-
import com.fasterxml.jackson.core.type.TypeReference;
4-
import com.fasterxml.jackson.databind.ObjectMapper;
5-
import jakarta.persistence.Column;
6-
import jakarta.persistence.Entity;
7-
import jakarta.persistence.Id;
8-
import jakarta.persistence.Table;
9-
import lombok.*;
3+
import java.io.IOException;
4+
import java.time.ZonedDateTime;
5+
import java.time.format.DateTimeFormatter;
6+
import java.util.Collections;
7+
import java.util.List;
8+
109
import org.eventplanner.events.entities.Event;
1110
import org.eventplanner.events.entities.Registration;
1211
import org.eventplanner.events.entities.Slot;
1312
import org.eventplanner.events.values.EventKey;
1413
import org.eventplanner.events.values.EventState;
1514
import org.eventplanner.events.values.Location;
1615

17-
import java.io.IOException;
18-
import java.time.ZonedDateTime;
19-
import java.time.format.DateTimeFormatter;
20-
import java.util.Collections;
21-
import java.util.List;
16+
import com.fasterxml.jackson.core.type.TypeReference;
17+
import com.fasterxml.jackson.databind.ObjectMapper;
18+
import jakarta.persistence.Column;
19+
import jakarta.persistence.Entity;
20+
import jakarta.persistence.Id;
21+
import jakarta.persistence.Table;
22+
import lombok.EqualsAndHashCode;
23+
import lombok.Getter;
24+
import lombok.NoArgsConstructor;
25+
import lombok.NonNull;
26+
import lombok.Setter;
2227

2328
@Entity
2429
@Table(name = "events")
@@ -30,7 +35,7 @@ public class EventJpaEntity {
3035
private static final ObjectMapper objectMapper = new ObjectMapper();
3136

3237
@Id
33-
@Column(name = "key", nullable = false)
38+
@Column(name = "key", nullable = false, updatable = false)
3439
private String key;
3540

3641
@Column(name = "year", nullable = false)
@@ -63,9 +68,26 @@ public class EventJpaEntity {
6368
@Column(name = "registrations")
6469
private String registrationsRaw;
6570

71+
public static @NonNull EventJpaEntity fromDomain(@NonNull Event domain) {
72+
var eventJpaEntity = new EventJpaEntity();
73+
eventJpaEntity.setKey(domain.getKey().value());
74+
eventJpaEntity.setYear(domain.getStart().getYear());
75+
eventJpaEntity.setName(domain.getName());
76+
eventJpaEntity.setState(domain.getState().value());
77+
eventJpaEntity.setNote(domain.getNote());
78+
eventJpaEntity.setDescription(domain.getDescription());
79+
eventJpaEntity.setStart(domain.getStart().format(DateTimeFormatter.ISO_DATE_TIME));
80+
eventJpaEntity.setEnd(domain.getStart().format(DateTimeFormatter.ISO_DATE_TIME));
81+
eventJpaEntity.setLocations(domain.getLocations());
82+
eventJpaEntity.setSlots(domain.getSlots());
83+
eventJpaEntity.setRegistrations(domain.getRegistrations());
84+
return eventJpaEntity;
85+
}
86+
6687
public List<Location> getLocations() {
6788
try {
68-
return objectMapper.readValue(locationsRaw, new TypeReference<>() {});
89+
return objectMapper.readValue(locationsRaw, new TypeReference<>() {
90+
});
6991
} catch (IOException e) {
7092
return Collections.emptyList();
7193
}
@@ -81,7 +103,8 @@ public void setLocations(List<Location> locations) {
81103

82104
public List<Slot> getSlots() {
83105
try {
84-
return objectMapper.readValue(slotsRaw, new TypeReference<>() {});
106+
return objectMapper.readValue(slotsRaw, new TypeReference<>() {
107+
});
85108
} catch (IOException e) {
86109
return Collections.emptyList();
87110
}
@@ -97,7 +120,8 @@ public void setSlots(List<Slot> slots) {
97120

98121
public List<Registration> getRegistrations() {
99122
try {
100-
return objectMapper.readValue(registrationsRaw, new TypeReference<>() {});
123+
return objectMapper.readValue(registrationsRaw, new TypeReference<>() {
124+
});
101125
} catch (IOException e) {
102126
return Collections.emptyList();
103127
}
@@ -111,34 +135,18 @@ public void setRegistrations(List<Registration> registrations) {
111135
}
112136
}
113137

114-
public static @NonNull EventJpaEntity fromDomain(@NonNull Event domain) {
115-
var eventJpaEntity = new EventJpaEntity();
116-
eventJpaEntity.setKey(domain.getKey().value());
117-
eventJpaEntity.setYear(domain.getStart().getYear());
118-
eventJpaEntity.setName(domain.getName());
119-
eventJpaEntity.setState(domain.getState().value());
120-
eventJpaEntity.setNote(domain.getNote());
121-
eventJpaEntity.setDescription(domain.getDescription());
122-
eventJpaEntity.setStart(domain.getStart().format(DateTimeFormatter.ISO_DATE_TIME));
123-
eventJpaEntity.setEnd(domain.getStart().format(DateTimeFormatter.ISO_DATE_TIME));
124-
eventJpaEntity.setLocations(domain.getLocations());
125-
eventJpaEntity.setSlots(domain.getSlots());
126-
eventJpaEntity.setRegistrations(domain.getRegistrations());
127-
return eventJpaEntity;
128-
}
129-
130138
public Event toDomain() {
131139
return new Event(
132-
new EventKey(key),
133-
name,
134-
EventState.fromString(state).orElse(EventState.PLANNED),
135-
note != null ? note : "",
136-
description != null ? description : "",
137-
ZonedDateTime.parse(start),
138-
ZonedDateTime.parse(end),
139-
getLocations(),
140-
getSlots(),
141-
getRegistrations()
140+
new EventKey(key),
141+
name,
142+
EventState.fromString(state).orElse(EventState.PLANNED),
143+
note != null ? note : "",
144+
description != null ? description : "",
145+
ZonedDateTime.parse(start),
146+
ZonedDateTime.parse(end),
147+
getLocations(),
148+
getSlots(),
149+
getRegistrations()
142150
);
143151
}
144152
}

backend/src/main/java/org/eventplanner/events/adapter/jpa/EventJpaRepositoryAdapter.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ public EventJpaRepositoryAdapter(EventJpaRepository eventJpaRepository) {
2020
@Override
2121
public Optional<Event> findByKey(EventKey key) {
2222
return this.eventJpaRepository.findById(key.value())
23-
.map(EventJpaEntity::toDomain);
23+
.map(EventJpaEntity::toDomain);
2424
}
2525

2626
@Override
2727
public List<Event> findAllByYear(int year) {
2828
return this.eventJpaRepository.findAllByYear(year)
29-
.map(EventJpaEntity::toDomain)
30-
.toList();
29+
.map(EventJpaEntity::toDomain)
30+
.toList();
3131
}
3232

3333
@Override

backend/src/main/java/org/eventplanner/positions/adapter/filesystem/PositionFileSystemRepository.java

-46
This file was deleted.

backend/src/main/java/org/eventplanner/positions/adapter/filesystem/PositionJsonEntity.java

-19
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package org.eventplanner.positions.adapter.jpa;
2+
3+
import java.io.Serializable;
4+
5+
import org.eventplanner.positions.entities.Position;
6+
import org.eventplanner.positions.values.PositionKey;
7+
8+
import jakarta.persistence.Column;
9+
import jakarta.persistence.Entity;
10+
import jakarta.persistence.Id;
11+
import jakarta.persistence.Table;
12+
import lombok.AllArgsConstructor;
13+
import lombok.Getter;
14+
import lombok.NoArgsConstructor;
15+
import lombok.Setter;
16+
17+
@Entity
18+
@Table(name = "positions")
19+
@Getter
20+
@Setter
21+
@NoArgsConstructor
22+
@AllArgsConstructor
23+
public class PositionJpaEntity implements Serializable {
24+
25+
@Id
26+
@Column(name = "key", nullable = false, updatable = false)
27+
private String key;
28+
29+
@Column(name = "name", nullable = false)
30+
private String name;
31+
32+
@Column(name = "color", nullable = false)
33+
private String color;
34+
35+
@Column(name = "prio", nullable = false)
36+
private int prio;
37+
38+
public static PositionJpaEntity fromDomain(Position position) {
39+
return new PositionJpaEntity(
40+
position.key().value(),
41+
position.name(),
42+
position.color(),
43+
position.priority()
44+
);
45+
}
46+
47+
public Position toDomain() {
48+
return new Position(new PositionKey(key), name, color, prio);
49+
}
50+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.eventplanner.positions.adapter.jpa;
2+
3+
import org.springframework.data.jpa.repository.JpaRepository;
4+
5+
public interface PositionJpaRepository extends JpaRepository<PositionJpaEntity, String> {
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.eventplanner.positions.adapter.jpa;
2+
3+
import java.util.List;
4+
5+
import org.eventplanner.positions.adapter.PositionRepository;
6+
import org.eventplanner.positions.entities.Position;
7+
import org.springframework.stereotype.Component;
8+
9+
@Component
10+
public class PositionJpaRepositoryAdapter implements PositionRepository {
11+
12+
private final PositionJpaRepository positionJpaRepository;
13+
14+
public PositionJpaRepositoryAdapter(final PositionJpaRepository positionJpaRepository) {
15+
this.positionJpaRepository = positionJpaRepository;
16+
}
17+
18+
@Override
19+
public List<Position> findAll() {
20+
return positionJpaRepository.findAll().stream().map(PositionJpaEntity::toDomain).toList();
21+
}
22+
}

backend/src/main/java/org/eventplanner/qualifications/adapter/filesystem/QualificationFileSystemRepository.java

-46
This file was deleted.

0 commit comments

Comments
 (0)