Browse Source

Building api

master
esoe 7 months ago
parent
commit
5fd23c11c1
  1. 77
      resource-service-api/src/main/java/ru/molokoin/resourceserviceapi/controllers/BuildingController.java
  2. 36
      resource-service-api/src/main/java/ru/molokoin/resourceserviceapi/entities/Building.java
  3. 14
      resource-service-api/src/main/java/ru/molokoin/resourceserviceapi/repositories/BuildingFace.java
  4. 52
      resource-service-api/src/main/resources/static/content/md/hello.md

77
resource-service-api/src/main/java/ru/molokoin/resourceserviceapi/controllers/BuildingController.java

@ -0,0 +1,77 @@
package ru.molokoin.resourceserviceapi.controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ru.molokoin.resourceserviceapi.entities.Building;
import ru.molokoin.resourceserviceapi.repositories.BuildingFace;
@RestController
@RequestMapping(path = "/", consumes = {"*/*"})
public class BuildingController {
@Autowired
private BuildingFace repo;
/**
* Получение перечня объектов строительства
* @return
*/
@GetMapping("/building/list")
public ResponseEntity<List<Building>> getBuildings(){
return new ResponseEntity<>(repo.findAll(), HttpStatus.OK);
}
/**
* Получение сведений по объекту строительства
* @param id
* @return
*/
@GetMapping("/building/{id}")
public ResponseEntity<?> getBuildingByID(@PathVariable Integer id){
return new ResponseEntity<>(repo.findBuildingById(id), HttpStatus.OK);
}
/**
* Создание запис о новом объекте строительства
* @param building
* @return
*/
@PostMapping(path = "/building/create",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> saveBuilding(@RequestBody Building building) {
repo.save(building);
return new ResponseEntity<>(building, HttpStatus.CREATED);
}
@PostMapping(path = "/building/update/{id}",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> updateBuilding(@PathVariable Integer id, @RequestBody Building building) {
Building b = repo.findBuildingById(id);
b.setName_full(building.getName_full());
b.setName_short(building.getName_short());
b.setCode_full(building.getCode_full());
b.setCode_short(building.getCode_short());
repo.save(b);
return new ResponseEntity<>(repo.findBuildingById(id), HttpStatus.CREATED);
}
@DeleteMapping("/building/delete/{id}")
public ResponseEntity<String> deleteBuilding(@PathVariable Long id){
Building b = repo.findBuildingById(id);
repo.delete(b);
return new ResponseEntity<>("Запись id#" + id + " удалена ... ", HttpStatus.OK);
}
}

36
resource-service-api/src/main/java/ru/molokoin/resourceserviceapi/entities/Building.java

@ -0,0 +1,36 @@
package ru.molokoin.resourceserviceapi.entities;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Сущность объекта строительства
*/
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Data
public class Building {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@Column(length=50)
private String name_short;//Сокращенное наименование
private String name_full;//Полное наименование
private String code_short;//Краткий код
private String code_full;//Полный код
// подготовить конструкторы на все варианты внесения информации о преподавателях
public Building(String name_short, String name_full, String code_short, String code_full){
this.name_short = name_short;
this.name_full = name_full;
this.code_short = code_short;
this.code_full = code_full;
}
}

14
resource-service-api/src/main/java/ru/molokoin/resourceserviceapi/repositories/BuildingFace.java

@ -0,0 +1,14 @@
package ru.molokoin.resourceserviceapi.repositories;
import java.util.List;
import org.springframework.data.repository.ListCrudRepository;
import org.springframework.stereotype.Repository;
import ru.molokoin.resourceserviceapi.entities.Building;
@Repository
public interface BuildingFace extends ListCrudRepository<Building, Long>{
List<Building> findAll();
Building findBuildingById(long id);
}

52
resource-service-api/src/main/resources/static/content/md/hello.md

@ -1,10 +1,10 @@
# RESOURCE-SERVICE-API : HELLO.MD # 1. RESOURCE-SERVICE-API : HELLO.MD
# Описание api # 2. Описание api
## domain:port/hello ## 2.1. domain:port/hello
Возвращает текущую страницу описания сервиса Возвращает текущую страницу описания сервиса
## domain:port/content/* ## 2.2. domain:port/content/*
статический контент сервиса, статический контент сервиса,
вспомогательные файлы для оформления или наполнения страниц вспомогательные файлы для оформления или наполнения страниц
например: например:
@ -12,55 +12,71 @@
- /md/* - /md/*
- /прочие папки и файлы ... - /прочие папки и файлы ...
## Управление данными преподавателей ## 2.3. Управление данными преподавателей
### domain:port/teacher/list ### GET:domain:port/teacher/list
Возвращает json файл с данными преподавателей Возвращает json файл с данными преподавателей
### domain:port/teacher/{id} ### GET:domain:port/teacher/{id}
Возвращает json файл с данными одного преподавателя Возвращает json файл с данными одного преподавателя
### domain:port/teacher/save ### POST:domain:port/teacher/save
Добавляет запись о новом преподавателе Добавляет запись о новом преподавателе
Возвращает json файл с данными добавленного преподавателя Возвращает json файл с данными добавленного преподавателя
### domain:port/teacher/update/{id} ### PUT:domain:port/teacher/update/{id}
Обновляет запись о преподавателе по id Обновляет запись о преподавателе по id
Возвращает json файл с обновленными данными преподавателя Возвращает json файл с обновленными данными преподавателя
### domain:port/teacher/delete/{id} ### DELETE:domain:port/teacher/delete/{id}
Удаляет запись о преподавателе по id Удаляет запись о преподавателе по id
Возвращает текстовое сообщение с результатами выполнения операции Возвращает текстовое сообщение с результатами выполнения операции
## Управление Критериями программ обучения ## 2.4. Управление Критериями программ обучения
Таблица: program_cretareas Таблица: program_cretareas
Поля таблицы: Поля таблицы:
- id (идентификатор); - id (идентификатор);
- name (наименование категории программы обучения); - name (наименование категории программы обучения);
- name_short (сокращенное наименование категории программы обучения). - name_short (сокращенное наименование категории программы обучения).
### domain:port/program-cretareas ### GET:domain:port/cretarea/list
Возвращает json файл с данными о критериях Возвращает json файл с данными о критериях
### domain:port/program-cretarea/{id} ### GET:domain:port/cretarea/{id}
Возвращает json файл с данными одного критерия Возвращает json файл с данными одного критерия
### domain:port/program-cretarea/save ### POST:domain:port/cretarea/save
Добавляет запись о новом критерии программы обучения Добавляет запись о новом критерии программы обучения
Возвращает json файл с данными добавленного критерия Возвращает json файл с данными добавленного критерия
### domain:port/program-cretarea/update/{id} ### PUT:domain:port/cretarea/update/{id}
Обновляет запись о критерии программы обучения по id Обновляет запись о критерии программы обучения по id
Возвращает json файл с обновленными данными о критерии прогрммы обучения Возвращает json файл с обновленными данными о критерии прогрммы обучения
### domain:port/program-cretarea/delete/{id} ### DELETE:domain:port/cretarea/delete/{id}
Удаляет запись о критерии программы обучения по id Удаляет запись о критерии программы обучения по id
Возвращает текстовое сообщение с результатами выполнения операции Возвращает текстовое сообщение с результатами выполнения операции
# Структура базы данных сервиса : SCHEME ## 2.5. Управление программами обучения
### GET:domain:port/program/list
Получение сведений обо всех программах обучения в json-формате
### GET:domain:port/program/{id}
Получение сведений о программе в json-формате
### POST:domain:port/program/create
Создание записи о новой программе
### PUT:domain:port/program/update/{id}
Обновление сведений о программе
### DELETE:domain:port/program/delete/{id}
Удаление сведений о программе
# 3. Структура базы данных сервиса : SCHEME
![image entity relationship diagram](content/images/ERD.svg "entity relationship diagram") ![image entity relationship diagram](content/images/ERD.svg "entity relationship diagram")
## Памятка # 4. Памятка
1. Предусмотреть возможность внесения сведений об обучении по курсу "Охрана труда, пункт В" (отВ): 1. Предусмотреть возможность внесения сведений об обучении по курсу "Охрана труда, пункт В" (отВ):
- одна программа предполагает наличие от 7-ми до 9-ти записей в реестре - одна программа предполагает наличие от 7-ми до 9-ти записей в реестре
- нет возможности по реестру понять, какие в итоге подпункты были включены в протокол - нет возможности по реестру понять, какие в итоге подпункты были включены в протокол

Loading…
Cancel
Save