Merge from dev
This commit is contained in:
commit
2ef3efed33
25
.docker/appsettings.json
Normal file
25
.docker/appsettings.json
Normal file
@ -0,0 +1,25 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "Host=db:5432;Database=persistence;Username=postgres;Password=postgres;Persist Security Info=True"
|
||||
},
|
||||
"AllowedHosts": "*",
|
||||
"NeedUseKeyCloak": false,
|
||||
"KeyCloakAuthentication": {
|
||||
"Audience": "account",
|
||||
"Host": "http://192.168.0.10:8321/realms/Persistence"
|
||||
},
|
||||
"AuthUser": {
|
||||
"username": "myuser",
|
||||
"password": 12345,
|
||||
"clientId": "webapi",
|
||||
"grantType": "password",
|
||||
"http://schemas.xmlsoap.org/ws/2005/05/identity /claims/nameidentifier": "7d9f3574-6574-4ca3-845a-0276eb4aa8f6"
|
||||
},
|
||||
"ClientUrl": "http://localhost:5000/"
|
||||
}
|
31
.docker/compose.yaml
Normal file
31
.docker/compose.yaml
Normal file
@ -0,0 +1,31 @@
|
||||
networks:
|
||||
persistence:
|
||||
external: false
|
||||
|
||||
services:
|
||||
db:
|
||||
image: timescale/timescaledb:latest-pg16
|
||||
container_name: some-timescaledb-16
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=postgres
|
||||
networks:
|
||||
- persistence
|
||||
ports:
|
||||
- "5462:5432"
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
|
||||
persistence:
|
||||
image: git.ddrilling.ru/ddrilling/persistence:latest
|
||||
container_name: persistence
|
||||
restart: always
|
||||
depends_on:
|
||||
- db
|
||||
networks:
|
||||
- persistence
|
||||
ports:
|
||||
- "1111:8080"
|
||||
volumes:
|
||||
- ./appsettings.json:/app/appsettings.json
|
||||
|
@ -1,4 +1,4 @@
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using DD.Persistence.Models;
|
||||
using DD.Persistence.Models.Requests;
|
||||
@ -174,4 +174,87 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Метод, который возвращает статистику по количеству изменений в разрезе дней
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("statistics")]
|
||||
public async Task<ActionResult<IEnumerable<StatisticsChangeLogDto>>> GetStatisticsCountAsync([FromQuery] ChangeLogRequest request, CancellationToken token)
|
||||
{
|
||||
var result = new List<StatisticsChangeLogDto>() {
|
||||
new() { DateTime = DateTimeOffset.UtcNow.AddDays(-60), ChangesCount = 10},
|
||||
new() { DateTime = DateTimeOffset.UtcNow.AddDays(-50), ChangesCount = 2},
|
||||
new() { DateTime = DateTimeOffset.UtcNow.AddDays(-25), ChangesCount = 560},
|
||||
new() { DateTime = DateTimeOffset.UtcNow.AddDays(-2), ChangesCount = 78},
|
||||
new() { DateTime = DateTimeOffset.UtcNow.AddDays(-1), ChangesCount = 39},
|
||||
};
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Метод, который возвращает историю изменений в разрезе дней
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("history")]
|
||||
public async Task<ActionResult<IEnumerable<HistoryChangeLogDto>>> HistoryChangeLogAsync([FromQuery] ChangeLogRequest request, CancellationToken token)
|
||||
{
|
||||
var userId = Guid.CreateVersion7();
|
||||
var changeLogItemCurrentId = Guid.CreateVersion7();
|
||||
var changeLogItemCreation = DateTimeOffset.UtcNow;
|
||||
var changeLogItems = new List<ChangeLogDto>()
|
||||
{
|
||||
new ChangeLogDto()
|
||||
{
|
||||
Id = changeLogItemCurrentId,
|
||||
Creation = changeLogItemCreation,
|
||||
IdAuthor = userId,
|
||||
IdEditor = userId,
|
||||
Obsolete = null,
|
||||
Value = new ChangeLogValuesDto(){
|
||||
Id = Guid.CreateVersion7(),
|
||||
Value = new Dictionary<string, object>() {
|
||||
["1"] = new { id = 1, caption = "Изменение 1 (c правкой)" },
|
||||
["2"] = new { id = 2, caption = "Изменение 2 (с правкой)" },
|
||||
}
|
||||
}
|
||||
},
|
||||
new ChangeLogDto()
|
||||
{
|
||||
Id = Guid.CreateVersion7(),
|
||||
Creation = DateTimeOffset.UtcNow.AddDays(-10),
|
||||
IdAuthor = userId,
|
||||
IdEditor = userId,
|
||||
IdNext = changeLogItemCurrentId,
|
||||
Obsolete = DateTimeOffset.UtcNow.AddDays(-5),
|
||||
Value = new ChangeLogValuesDto(){
|
||||
Id = Guid.CreateVersion7(),
|
||||
Value = new Dictionary<string, object>() {
|
||||
["1"] = new { id = 1, caption = "Изменение 1" },
|
||||
["2"] = new { id = 2, caption = "Изменение 2" },
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
var result = new List<HistoryChangeLogDto>() {
|
||||
new() {
|
||||
Comment = "Петров И. Ю. попросил внести изменения",
|
||||
DateTime = changeLogItemCreation,
|
||||
DiscriminatorId = Guid.CreateVersion7(),
|
||||
User = new UserDto()
|
||||
{
|
||||
Id = userId,
|
||||
DisplayName = "Иванов И. И"
|
||||
},
|
||||
ChangeLogItems = changeLogItems
|
||||
},
|
||||
};
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
}
|
||||
|
32
DD.Persistence.Models/HistoryChangeLogDto.cs
Normal file
32
DD.Persistence.Models/HistoryChangeLogDto.cs
Normal file
@ -0,0 +1,32 @@
|
||||
namespace DD.Persistence.Models;
|
||||
|
||||
/// <summary>
|
||||
/// Модель, необходимая для отображения истории по журналу изменений
|
||||
/// </summary>
|
||||
public class HistoryChangeLogDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Дата и время изменений
|
||||
/// </summary>
|
||||
public DateTimeOffset DateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Пользователь, совершивший изменение данных
|
||||
/// </summary>
|
||||
public required UserDto User { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Проект, с которым связаны изменения
|
||||
/// </summary>
|
||||
public Guid DiscriminatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Список изменений
|
||||
/// </summary>
|
||||
public required IEnumerable<ChangeLogDto> ChangeLogItems { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Комментарий к изменению
|
||||
/// </summary>
|
||||
public required string Comment { get; set; }
|
||||
}
|
17
DD.Persistence.Models/Requests/ChangeLogRequest.cs
Normal file
17
DD.Persistence.Models/Requests/ChangeLogRequest.cs
Normal file
@ -0,0 +1,17 @@
|
||||
namespace DD.Persistence.Models.Requests;
|
||||
|
||||
/// <summary>
|
||||
/// Запрос, используемый для получения данных по журналу операций
|
||||
/// </summary>
|
||||
public class ChangeLogRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// Дискриминатор задачи
|
||||
/// </summary>
|
||||
public Guid DiscriminatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Пользователь
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
}
|
23
DD.Persistence.Models/StatisticsChangeLogDto.cs
Normal file
23
DD.Persistence.Models/StatisticsChangeLogDto.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DD.Persistence.Models;
|
||||
|
||||
/// <summary>
|
||||
/// Модель, необходимая для отображения статистики по журналу изменений
|
||||
/// </summary>
|
||||
public class StatisticsChangeLogDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Дата и время изменений
|
||||
/// </summary>
|
||||
public DateTimeOffset DateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Количество изменений
|
||||
/// </summary>
|
||||
public int ChangesCount { get; set; }
|
||||
}
|
23
DD.Persistence.Models/UserDto.cs
Normal file
23
DD.Persistence.Models/UserDto.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DD.Persistence.Models;
|
||||
|
||||
/// <summary>
|
||||
/// Класс, описывающий пользователя
|
||||
/// </summary>
|
||||
public class UserDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Идентификатор пользователя
|
||||
/// </summary>
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Имя пользователя для отображения
|
||||
/// </summary>
|
||||
public required string DisplayName { get; set; }
|
||||
}
|
11
README.md
11
README.md
@ -1 +1,10 @@
|
||||
# Persistence
|
||||
# Persistence
|
||||
## Инструкция по развертыванию persistence в docker
|
||||
1. Необходимо скопировать себе локально папку **.docker**, которая находится внутри проекта **persistence**
|
||||
|
||||
2. Авторизоваться в gitea-registry при помощи командры: `docker login -u пользователь -p пароль https://git.ddrilling.ru`
|
||||
|
||||
3. Из папки **.docker** запустить команду:
|
||||
`docker-compose up`
|
||||
|
||||
4. При успешном старте persistence необходимо откорректировать ссылку в браузере: `[host]:[port]/swagger/index.html`
|
Loading…
Reference in New Issue
Block a user