Skip to content

Commit

Permalink
Merge pull request #15 from byzaya/swagger
Browse files Browse the repository at this point in the history
swagger
  • Loading branch information
byzaya authored Jan 5, 2024
2 parents eb98b91 + 84ca8a8 commit 3fc4378
Show file tree
Hide file tree
Showing 9 changed files with 85 additions and 0 deletions.
6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,12 @@
<artifactId>annotations</artifactId>
<version>23.0.0</version>
</dependency>

<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>

</project>
19 changes: 19 additions & 0 deletions src/main/java/org/example/config/SwaggerConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.example.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI userApi() {
return new OpenAPI()
.info(
new Info()
.title("ProPill API")
.description("Описание сервиса онлайн аптеки")
.version("1.0.0"));
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.example.controller.item;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.example.controller.BaseController;
import org.example.dto.item.ItemDto;
Expand All @@ -13,10 +15,14 @@
@RestController
@RequestMapping("/api/item")
@RequiredArgsConstructor
@Tag(name = "Товар")
public class ItemCreationController extends BaseController {

private final ItemCreationService itemCreationService;

@Operation(
summary = "Добавление товара",
description = "Добавление товара в базу данных фармацевтом")
@PostMapping("/add")
public ResponseEntity<?> addItemByAdmin(
@RequestParam(value = "name") String name,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.example.controller.item;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.example.controller.BaseController;
import org.example.dto.item.ItemDto;
Expand All @@ -10,10 +12,14 @@
@RestController
@RequestMapping("/api/item")
@RequiredArgsConstructor
@Tag(name = "Товар")
public class ItemInfoController extends BaseController {

private final ItemInfoService itemInfoService;

@Operation(
summary = "Информация о товаре",
description = "Получение информации о товаре по его id")
@GetMapping("/info/{item_id}")
public ResponseEntity<?> getItemInfo(@PathVariable(value = "item_id") Long itemId) {
return ResponseEntity.ok(ItemDto.fromItem(itemInfoService.getItemInfo(itemId)));
Expand Down
22 changes: 22 additions & 0 deletions src/main/java/org/example/controller/item/ItemQueryController.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.example.controller.item;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.example.controller.BaseController;
import org.example.dto.item.ItemDto;
Expand All @@ -13,32 +15,52 @@
@RestController
@RequestMapping("/api/item")
@RequiredArgsConstructor
@Tag(name = "Товар")
public class ItemQueryController extends BaseController {
private final ItemQueryService itemQueryService;

@Operation(
summary = "Получение всех товаров",
description = "Получение всех существующих товаров")
@GetMapping("/all")
public ResponseEntity<?> getAll() {
return ResponseEntity.ok(itemQueryService.getAll().stream().map(ItemDto::fromItem).toList());
}

@Operation(
summary = "Получение всех товаров доступных для обычных пользователей",
description =
"Получение всех товаров(рецептурных и не рецептурных) доступных для обычных"
+ " пользователей")
@GetMapping("/normal/all")
public ResponseEntity<?> getAllReceiptAndNot() {
return ResponseEntity.ok(
itemQueryService.getAllReceiptAndNot().stream().map(ItemDto::fromItem).toList());
}

@Operation(
summary = "Получение всех товаров доступных для доктора",
description =
"Получение всех товаров(рецептурных, не рецептурных и специальных по профессии доктора) "
+ "доступных для доктора по его id")
@GetMapping("/doc/all")
public ResponseEntity<?> getAllItemsByDocId(@RequestParam(value = "user_id") Long userId) {
return ResponseEntity.ok(
itemQueryService.getAllItemsByDocId(userId).stream().map(ItemDto::fromItem).toList());
}

@Operation(
summary = "Получение всех товаров по типу",
description = "Получение всех товаров по id типа")
@GetMapping("/type")
public ResponseEntity<?> getAllItemsByTypeId(@RequestParam(value = "type_id") Long typeId) {
return ResponseEntity.ok(
itemQueryService.getAllItemsByTypeId(typeId).stream().map(ItemDto::fromItem).toList());
}

@Operation(
summary = "Получение всех товаров по специальности врача",
description = "Получение всех товаров по id специальности врача")
@GetMapping("/type/category")
public ResponseEntity<?> getAllItemsBySpecId(
@RequestParam(value = "speciality_id") Long specialityId) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.example.controller.item;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.example.controller.BaseController;
import org.example.dto.item.ItemDto;
Expand All @@ -13,10 +15,12 @@
@RestController
@RequestMapping("/api/item")
@RequiredArgsConstructor
@Tag(name = "Товар")
public class ItemSearchController extends BaseController {

private final ItemSearchService itemSearchService;

@Operation(summary = "Поиск товаров", description = "Поиск товаров по названию")
@GetMapping("/search_result")
public ResponseEntity<?> searchItems(@RequestParam(value = "search") String search) {
return ResponseEntity.ok(
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/org/example/controller/item/TypeController.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.example.controller.item;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.example.controller.BaseController;
import org.example.dto.item.TypeDto;
Expand All @@ -12,10 +14,12 @@
@RestController
@RequestMapping("/api/type")
@RequiredArgsConstructor
@Tag(name = "Тип", description = "Рецептурные/без рецептурные/специальные")
public class TypeController extends BaseController {

private final TypeService typeService;

@Operation(summary = "Получение всех типов товаров")
@GetMapping("/all")
public ResponseEntity<?> getAll() {
return ResponseEntity.ok(typeService.getAll().stream().map(TypeDto::fromType).toList());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.example.controller.pharmacy;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.example.controller.BaseController;
import org.example.dto.pharmacy.PharmacyDto;
Expand All @@ -13,16 +15,23 @@
@RestController
@RequestMapping("/api/pharmacy")
@RequiredArgsConstructor
@Tag(name = "Аптека")
public class PharmacyController extends BaseController {

private final PharmacyService pharmacyService;

@Operation(
summary = "Получение всех аптек",
description = "Получение списка всех существующих аптек")
@GetMapping("/all")
public ResponseEntity<?> getAll() {
return ResponseEntity.ok(
pharmacyService.getAll().stream().map(PharmacyDto::fromPharmacy).toList());
}

@Operation(
summary = "Получение всех аптек, в которых есть товар",
description = "Получение списка всех аптек, в которых есть товар по id товара")
@GetMapping("/item")
public ResponseEntity<?> getAllPharmaciesByItemId(@RequestParam(value = "item_id") Long itemId) {
return ResponseEntity.ok(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.example.controller.user;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.example.controller.BaseController;
import org.example.dto.user.SpecialityDto;
Expand All @@ -13,16 +15,23 @@
@RestController
@RequestMapping("/api/speciality")
@RequiredArgsConstructor
@Tag(name = "Специальность")
public class SpecialityController extends BaseController {

private final SpecialityService specialityService;

@Operation(
summary = "Получение всех специальностей",
description = "Получение списка всех существующих специальностей врачей")
@GetMapping("/all")
public ResponseEntity<?> getAll() {
return ResponseEntity.ok(
specialityService.getAll().stream().map(SpecialityDto::fromSpeciality).toList());
}

@Operation(
summary = "Получение специальности пользователя(врача)",
description = "Получение специальности пользователя(врача) по id пользователя")
@GetMapping("/{user_id}")
public ResponseEntity<?> getItemInfo(@PathVariable(value = "user_id") Long userId) {
return ResponseEntity.ok(SpecialityDto.fromSpeciality(specialityService.getByUserId(userId)));
Expand Down

0 comments on commit 3fc4378

Please sign in to comment.