diff --git a/resource-service-api/src/main/resources/static/content/md/hello.md b/resource-service-api/src/main/resources/static/content/md/hello.md index 059e11a..4c52db5 100644 --- a/resource-service-api/src/main/resources/static/content/md/hello.md +++ b/resource-service-api/src/main/resources/static/content/md/hello.md @@ -1,38 +1,111 @@ -# 1. RESOURCE-SERVICE-API : HELLO.MD + +# 1. RESOURCE-SERVICE-API : HELLO.MD + +# 2. Описание api +## 2.1. domain:port/hello Возвращает текущую страницу описания сервиса -## 2.2. domain:port/content/* - статический контент сервиса, - вспомогательные файлы для оформления или наполнения страниц - например: - - /images/* - - /md/* - - /прочие папки и файлы ... +## 2.2. domain:port/content/* +статический контент сервиса, вспомогательные файлы для оформления или наполнения страниц например: +- /images/* (картинки) +- /md/* (статические файлы markdown разметки) +- /прочие папки и файлы ... -## 2.3. Управление данными преподавателей -### GET:domain:port/teacher/list - Возвращает json файл с данными преподавателей +## 2.3. Управление данными преподавателей (Teacher) +**Графический интерфейс для работы с данными преподавателей:** +[client-service-teachers:link](http://localhost:84/teachers) + +### Таблица в СУБД: teacher + Поля таблицы: + - id (long) + - first_name (строка) + - second_name (строка) + - last_name (строка) + - employee_id (строка) + - snils (строка) -### GET:domain:port/teacher/{id} - Возвращает json файл с данными одного преподавателя +### [GET:domain:port/teacher/list](http://localhost:81/teacher/list) +Возвращает json файл с данными преподавателей, **например**: +```json +[ + { + "id": 116, + "first_name": "Игорь", + "second_name": "Ворожейкин", + "last_name": "Александрович", + "employee_id": "24", + "snils": "" + }, + { + "id": 117, + "first_name": "Камил", + "second_name": "Кулембитов", + "last_name": "Минибаевич", + "employee_id": "25", + "snils": "" + } +] +``` + +### [GET:domain:port/teacher/{id}](http://localhost:81/teacher/117) +Возвращает json файл с данными одного преподавателя, например: +```json +{ + "id": 117, + "first_name": "Камил", + "second_name": "Кулембитов", + "last_name": "Минибаевич", + "employee_id": "25", + "snils": "" +} +``` ### POST:domain:port/teacher/save - Добавляет запись о новом преподавателе - Возвращает json файл с данными добавленного преподавателя +Добавляет запись о новом преподавателе +Возвращает json файл с данными добавленного преподавателя +```console +curl -X POST\ +-H "Content-Type: application/json"\ +-d '{"first_name": "Камил", "second_name": "Кулембитов", "last_name": "Минибаевич", "employee_id": "25", "snils": ""}'\ +http://localhost:81/teacher/save +``` ### PUT:domain:port/teacher/update/{id} - Обновляет запись о преподавателе по id - Возвращает json файл с обновленными данными преподавателя +Обновляет запись о преподавателе по id, например: +```console +curl -X PUT\ +-H "Content-Type: application/json"\ +-d '{"first_name": "Камил", "second_name": "Кулембитов", "last_name": "Минибаевич", "employee_id": "25", "snils": ""}'\ +http://localhost:81/teacher/update/117 +``` +Возвращает json файл с обновленными данными преподавателя. ### DELETE:domain:port/teacher/delete/{id} - Удаляет запись о преподавателе по id - Возвращает текстовое сообщение с результатами выполнения операции +Удаляет запись о преподавателе по id, например: +```console +curl -X DELETE\ +http://localhost:81/teacher/delete/117 +``` +Возвращает текстовое сообщение (true/false) с результатами выполнения операции. +Не позволит удалить запись о преподавателе, если на нее ссылается хотябы один учебный курс. + +## 2.4. Управление Критериями программ обучения (ProgramCretarea) +**Графический интерфейс для работы с критериями:** +[client-service-teachers:link](http://localhost:84/program-cretareas) -## 2.4. Управление Критериями программ обучения - Таблица: program_cretareas +### Таблица в СУБД: program_cretareas Поля таблицы: - id (идентификатор); - name (наименование категории программы обучения); @@ -53,10 +126,13 @@ Возвращает json файл с обновленными данными о критерии прогрммы обучения ### DELETE:domain:port/cretarea/delete/{id} - Удаляет запись о критерии программы обучения по id - Возвращает текстовое сообщение с результатами выполнения операции + Удаляет запись о критерии программы обучения по id. + Возвращает текстовое сообщение с результатами выполнения операции (true/false). + Не позволяет удалить критерий, если он связан хотябы с одной программой обучения. -## 2.5. Управление программами обучения +## 2.5. Управление программами обучения (Program) +**Графический интерфейс для работы с программами обучения:** +[client-service-teachers:link](http://localhost:84/programs) ### GET:domain:port/program/list Получение сведений обо всех программах обучения в json-формате @@ -71,8 +147,11 @@ ### DELETE:domain:port/program/delete/{id} Удаление сведений о программе + Не позволяет удалить сведения о программе обучения, если в базе содержится хотябы один курс по этой программе -## 2.6. Объекты строительтва +## 2.6. Объекты строительтва (Building) +**Графический интерфейс для работы с объектами строительства:** +[client-service-teachers:link](http://localhost:84/buildings) ### GET:domain:port/building/list Получение сведений обо всех объектах строительства в json-формате @@ -86,20 +165,99 @@ Обновление сведений об объекте строительства ### DELETE:domain:port/building/delete/{id} - Удаление сведений об объекте строительства + Удаление сведений об объекте строительства. + Не позволит удалить сведения об объекте строительства, если на него ссылается хотябы один курс. + +## 2.7. Учебные курсы (Course) +**Графический интерфейс для работы с учебными курсами:** +[client-service-teachers:link](http://localhost:84/courses) +### GET:domain:port/curse/list + Получение сведений обо всех курсах в json-формате + +### GET:domain:port/curse/{id} + Получение сведений об курсе в json-формате + +### POST:domain:port/curse/create + Создание записи о новом курсе + +### PUT:domain:port/curse/update/{id} + Обновление сведений о курсе + +### DELETE:domain:port/curse/delete/{id} + Удаление сведений о курсе по id курса. + Не позволит удалить сведения о курсе, если на него ссылается хотябы одн азапись реестра обученных. + +## 2.8. Организации (Organization) +**Графический интерфейс для работы со сведениями об организациях:** +[client-service-teachers:link](http://localhost:84/organizations) + +### GET:domain:port/organization/list + Получение сведений обо всех записях реестра в json-формате + +### GET:domain:port/organization/{id} + Получение сведений о записи в реестре в json-формате + +### POST:domain:port/organization/create + Создание новой записи реестре -# 3. Структура базы данных сервиса : SCHEME +### PUT:domain:port/organization/update/{id} + Обновление записи в реестре + +### DELETE:domain:port/organization/delete/{id} + Удаление записи в реестре по id записи. + Не позволит удалить сведения об организации, если на них ссылается хотябы одна запись о студенте. + +## 2.9. Студенты (Student) +**Графический интерфейс для работы со сведениями о студентах:** +[client-service-teachers:link](http://localhost:84/students) + +### GET:domain:port/student/list + Получение сведений обо всех студентах в json-формате + +### GET:domain:port/student/{id} + Получение сведений о студенте в json-формате + +### POST:domain:port/student/create + Создание новой записи о студенте + +### PUT:domain:port/student/update/{id} + Обновление сведений о студенте + +### DELETE:domain:port/student/delete/{id} + Удаление записи о студенте. + Не позволит удалить запись о студенте, если на ее ссылается хотя бы одна запись из реестра обученных. + +## 2.10. Записи в реестре обученных (EducationEntry) +**Графический интерфейс для работы с записями реестра:** +[client-service-teachers:link](http://localhost:84/educations) + +### GET:domain:port/education/list + Получение сведений обо всех записях реестра в json-формате + +### GET:domain:port/education/{id} + Получение сведений о записи в реестре в json-формате + +### POST:domain:port/education/create + Создание новой записи реестре + +### PUT:domain:port/education/update/{id} + Обновление записи в реестре + +### DELETE:domain:port/education/delete/{id} + Удаление записи в реестре по id записи + +# 3. Структура базы данных сервиса : SCHEME ![image entity relationship diagram](content/images/ERD.svg "entity relationship diagram") -# 4. Памятка +# 4. Памятка 1. Предусмотреть возможность внесения сведений об обучении по курсу "Охрана труда, пункт В" (отВ): - одна программа предполагает наличие от 7-ми до 9-ти записей в реестре - нет возможности по реестру понять, какие в итоге подпункты были включены в протокол - нет возможности сгенерировать протокол на основании внесенных в реестр данных 2. Предусмотреть возможность сопоставления должности и программы, для - назначения тестирований на платформе ЕИСОТ - 3. Подключить контейнер postgres к микросервисам + diff --git a/storage-rs/src/main/java/ru/molokoin/storagers/controller/StorageController.java b/storage-rs/src/main/java/ru/molokoin/storagers/controller/StorageController.java index bba8343..0e45ab9 100644 --- a/storage-rs/src/main/java/ru/molokoin/storagers/controller/StorageController.java +++ b/storage-rs/src/main/java/ru/molokoin/storagers/controller/StorageController.java @@ -139,7 +139,6 @@ public class StorageController { */ @GetMapping("/export-as-educations/{name}") public String exportAsEducations(@PathVariable String name){ - return "redirect:/uploads"; } diff --git a/storage-rs/src/main/resources/static/content/md/hello.md b/storage-rs/src/main/resources/static/content/md/hello.md index d0c0b71..bb835e7 100644 --- a/storage-rs/src/main/resources/static/content/md/hello.md +++ b/storage-rs/src/main/resources/static/content/md/hello.md @@ -1,15 +1,51 @@ -# storageRS +# storage-rs +Настоящий сервис задумывался как универсальное средство работы с файловой системой, которое в перспективе может использоваться различными сервисами. + Сервис работы с файлами: - загрузка файлов на сервер - скачивание файлов с сервера - просмотр списка файлов -- хранение сведений о файлах в базе данных - представление данных xlsx файлов в json +Связка файлового хранилища с СУБД осуществляется контроллером третьего сервиса (gates) + # Загрузка файлов на сервер 1. файлы загружаются по одному, одновременно создается запись о пакете (table_pack) в базе table_pack: - id - наименование пакета -- тип пакета(наименование загружаемой формы, для выбора последующего алгоритма обработки) \ No newline at end of file +- тип пакета(наименование загружаемой формы, для выбора последующего алгоритма обработки) + +# API +## [GET domain:port/api/list-uploads](http://localhost:82/api/list-uploads) +Получение списка размещенных в хранилище файлов + +## GET:/api/document/{filename} +[link](http://localhost:82/api/document/107.xlsx) +Получение метаданных размещенного в хранилище файла: +- наименование +- расширение +- путь +- размер в байтах + +Метаданные берутся из информации файловой системы и представляются пользователю в качестве объекта document, обображенного в json формате. + +## /api/document/content/{filename} +[link](http://localhost:82/api/document/content/107.xlsx) +Получение данных xlsx файла в json формате + +## DELETE:/api/document/delete/{filename} +## POST:/api/document/store + +# Face +## /view/{name} +Просмотр содержимого xlsx-файла в виде таблицы + +## [/uploads](http://localhost:82/uploads) +Просмотр списка файлов из хранилища по данным файловой системы. +Доступ к инструментам: +- добавления файлов в хранишище +- удаление файлов +- просмотр содержимого xlsx-файлов + diff --git a/storage-rs/src/main/resources/templates/documents.html b/storage-rs/src/main/resources/templates/documents.html index 550e6ee..a05cdfa 100644 --- a/storage-rs/src/main/resources/templates/documents.html +++ b/storage-rs/src/main/resources/templates/documents.html @@ -10,20 +10,20 @@ xmlns:th="http://www.thymeleaf.org">
-

Uploads

- menu : auth : Uploads +

STORAGE-RS:Uploads


-

Перечень файлов:

+
+

Перечень файлов в хранилище:

@@ -61,12 +61,11 @@ xmlns:th="http://www.thymeleaf.org"> -
+