Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions common/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>ru.practicum</groupId>
<artifactId>shareit</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>

<artifactId>common</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
12 changes: 12 additions & 0 deletions common/src/main/java/ru/practicum/ShareItCommon.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package ru.practicum;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ShareItCommon {
public static void main(String[] args) {
SpringApplication.run(ShareItCommon.class, args);
}

}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package ru.practicum.shareit.booking;
package ru.practicum.booking;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import ru.practicum.shareit.item.ItemDto;
import ru.practicum.shareit.user.UserDto;
import ru.practicum.item.ItemDto;
import ru.practicum.user.UserDto;

import java.time.LocalDateTime;

Expand All @@ -19,5 +19,5 @@ public class BookingDto {
private UserDto booker;
private LocalDateTime start;
private LocalDateTime end;
private Booking.BookingStatus status;
private BookingStatus status;
}
8 changes: 8 additions & 0 deletions common/src/main/java/ru/practicum/booking/BookingStatus.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package ru.practicum.booking;

public enum BookingStatus {
WAITING,
APPROVED,
REJECTED,
CANCELED
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package ru.practicum.booking;

import jakarta.validation.constraints.AssertTrue;
import jakarta.validation.constraints.Future;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class NewBookingRequestDto {
@NotNull
private Long itemId;

@NotNull
@Future
private LocalDateTime start;

@NotNull
@Future
private LocalDateTime end;

@AssertTrue(message = "Выберите корректный срок аренды.")
public boolean isEndAfterStart() {
return end.isAfter(start);
}
}
Original file line number Diff line number Diff line change
@@ -1,25 +1,18 @@
package ru.practicum.shareit.item;
package ru.practicum.item;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;
import lombok.Data;
import ru.practicum.shareit.booking.BookingDto;
import ru.practicum.shareit.item.comment.CommentDto;
import ru.practicum.booking.BookingDto;
import ru.practicum.item.comment.CommentDto;

import java.util.List;

@Data
@Builder
public class ItemDto {
private Long id;

@NotNull
@NotBlank
private String name;
@NotNull
private String description;
@NotNull
private Boolean available;
private Long requestId;
private BookingDto lastBooking;
Expand Down
26 changes: 26 additions & 0 deletions common/src/main/java/ru/practicum/item/NewItemRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package ru.practicum.item;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NewItemRequest {

@NotBlank
private String name;

@NotBlank
private String description;

@NotNull
private Boolean available;

private Long requestId;
}
16 changes: 16 additions & 0 deletions common/src/main/java/ru/practicum/item/UpdateItemRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package ru.practicum.item;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UpdateItemRequest {
private String name;
private String description;
private Boolean available;
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.practicum.shareit.item.comment;
package ru.practicum.item.comment;

import lombok.Builder;
import lombok.Data;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package ru.practicum.item.comment;

import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class NewCommentRequest {

@NotBlank
private String text;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package ru.practicum.request;

import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CreateItemRequestDto {

@NotBlank
private String description;
}
19 changes: 19 additions & 0 deletions common/src/main/java/ru/practicum/request/ItemRequestDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package ru.practicum.request;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ItemRequestDto {
private Long id;
private String description;
private Long requesterId;
private LocalDateTime created;
}
19 changes: 19 additions & 0 deletions common/src/main/java/ru/practicum/user/NewUserRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package ru.practicum.user;

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

@Data
@Builder
@AllArgsConstructor
public class NewUserRequest {

@NotBlank
private String name;

@Email(message = "Некорректный email")
private String email;
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package ru.practicum.shareit.user;
package ru.practicum.user;

import jakarta.validation.constraints.Email;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class UserDto {
@AllArgsConstructor
public class UpdateUserRequest {
private Long id;
private String name;

@Email(message = "Некорректный email")
private String email;
private String name;
}
16 changes: 16 additions & 0 deletions common/src/main/java/ru/practicum/user/UserDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package ru.practicum.user;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserDto {
private Long id;
private String email;
private String name;
}
Empty file.
40 changes: 40 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
version: '3.8'

services:
postgres:
image: postgres:16
environment:
POSTGRES_USER: dbuser
POSTGRES_PASSWORD: 12345
POSTGRES_DB: shareit
ports:
- "5432:5432"
volumes:
- pg_data:/var/lib/postgresql/data

server:
build:
context: ./server
ports:
- "9090:9090" # <-- теперь 9090!
depends_on:
- postgres
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/shareit
SPRING_DATASOURCE_USERNAME: dbuser
SPRING_DATASOURCE_PASSWORD: 12345
SERVER_PORT: 9090 # <-- важно! Или укажи server.port в application.properties
TZ: "Asia/Yekaterinburg"

gateway:
build:
context: ./gateway
ports:
- "8080:8080" # <-- оставляем 8080!
depends_on:
- server
environment:
SHAREIT_SERVER_URL: http://server:9090 # <-- важно! Ссылаемся на server с новым портом

volumes:
pg_data:
7 changes: 7 additions & 0 deletions gateway/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM openjdk:21-jdk-slim

WORKDIR /app

COPY target/gateway-0.0.1-SNAPSHOT.jar app.jar

ENTRYPOINT ["java", "-jar", "app.jar"]
Loading