Added threads listing controller
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
f8038d9587
commit
f791625102
@ -14,7 +14,7 @@ namespace NeDvachAPI.Controllers
|
||||
public string Get([FromUri] string board, int thread)
|
||||
{
|
||||
string ipAddress = Request.HttpContext.Connection.RemoteIpAddress.ToString();
|
||||
List<Post> posts = DBchat.DbList(board, thread);
|
||||
List<Post> posts = DBchat.PostsList(board, thread);
|
||||
string postsJson = JsonSerializer.Serialize(posts);
|
||||
Console.WriteLine("С адреса " + ipAddress + " запрошен список постов из борды " + board + " и треда# " + thread);
|
||||
return postsJson ;
|
||||
|
23
Controllers/ShowThreads.cs
Normal file
23
Controllers/ShowThreads.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Text.Json;
|
||||
using System.Web.Http;
|
||||
using HttpGetAttribute = Microsoft.AspNetCore.Mvc.HttpGetAttribute;
|
||||
using RouteAttribute = Microsoft.AspNetCore.Mvc.RouteAttribute;
|
||||
|
||||
namespace NeDvachAPI.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("[controller]")]
|
||||
public class ThreadsController : ControllerBase
|
||||
{
|
||||
[HttpGet(Name = "GetThreads")]
|
||||
public string Get([FromUri] string board)
|
||||
{
|
||||
string ipAddress = Request.HttpContext.Connection.RemoteIpAddress.ToString();
|
||||
List<Post> posts = DBchat.ThreadsList(board);
|
||||
string postsJson = JsonSerializer.Serialize(posts);
|
||||
Console.WriteLine("С адреса " + ipAddress + " запрошен список тредов из борды " + board);
|
||||
return postsJson;
|
||||
}
|
||||
}
|
||||
}
|
76
DBchat.cs
76
DBchat.cs
@ -8,7 +8,7 @@ namespace NeDvachAPI
|
||||
// Obtain connection string information from the portal
|
||||
|
||||
|
||||
public static List<Post> DbList(string boardName, int thread)
|
||||
public static List<Post> PostsList(string boardName, int thread)
|
||||
{
|
||||
// Build connection string using parameters from portal
|
||||
//Post[] posts = new Post[10];
|
||||
@ -79,6 +79,80 @@ namespace NeDvachAPI
|
||||
return posts;
|
||||
}
|
||||
|
||||
public static List<Post> ThreadsList(string boardName)
|
||||
{
|
||||
// Build connection string using parameters from portal
|
||||
//Post[] posts = new Post[10];
|
||||
List<Post> posts = new List<Post>();
|
||||
//int postCount = 0;
|
||||
string received = "";
|
||||
string connString =
|
||||
String.Format(
|
||||
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
|
||||
AuthInfo.DB.Host,
|
||||
AuthInfo.DB.User,
|
||||
AuthInfo.DB.DBname,
|
||||
AuthInfo.DB.Port,
|
||||
AuthInfo.DB.Password);
|
||||
|
||||
using (var conn = new NpgsqlConnection(connString))
|
||||
{
|
||||
|
||||
|
||||
conn.Open();
|
||||
|
||||
|
||||
// using ( var command = new NpgsqlCommand(@"
|
||||
// SELECT * FROM
|
||||
// (SELECT post_id, substring(post,1,200)
|
||||
// FROM dvach
|
||||
// ORDER BY post_id DESC
|
||||
// limit 10
|
||||
// )
|
||||
// subquery
|
||||
// ORDER BY post_id ASC", conn) )
|
||||
using (var command = new NpgsqlCommand($@"
|
||||
SELECT * FROM
|
||||
(
|
||||
SELECT post_id, post_text, content, post_timestamp, is_op, thread_id
|
||||
FROM posts
|
||||
WHERE
|
||||
is_op = {true}
|
||||
ORDER BY post_id DESC
|
||||
) subquery
|
||||
ORDER BY post_id ASC", conn))
|
||||
{
|
||||
|
||||
var reader = command.ExecuteReader();
|
||||
while (reader.Read())
|
||||
{
|
||||
//received +=(
|
||||
//string.Format(
|
||||
//"#{0}: {1}" + "\n",
|
||||
// reader.GetInt32(0).ToString(),
|
||||
//reader.GetString(1)
|
||||
//)
|
||||
//);
|
||||
Post receivedPost = new()
|
||||
{
|
||||
Id = reader.GetInt32(0),
|
||||
Text = reader.GetString(1),
|
||||
ImgURL = reader.IsDBNull(2) ? null : reader.GetFieldValue<string[]>(2),
|
||||
Timestamp = reader.GetString(3),
|
||||
Is_OP = reader.GetBoolean(4),
|
||||
Thread_Id = reader.GetInt32(5)
|
||||
|
||||
};
|
||||
posts.Add(receivedPost);
|
||||
//posts[postCount] = receivedPost;
|
||||
//postCount++;
|
||||
}
|
||||
reader.Close();
|
||||
}
|
||||
}
|
||||
return posts;
|
||||
}
|
||||
|
||||
public static void DbUpdate(string id, string text)
|
||||
{
|
||||
string connString =
|
||||
|
Reference in New Issue
Block a user