Skip to content

Commit

Permalink
Started implementing key requests
Browse files Browse the repository at this point in the history
  • Loading branch information
ThePinkUnicorn6 committed Dec 12, 2023
1 parent 82bcdc6 commit 8011c21
Showing 1 changed file with 59 additions and 16 deletions.
75 changes: 59 additions & 16 deletions Program.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System.Net;
using System.Net;
using System.Text;
using Newtonsoft.Json;
using System.Data.SQLite;
Expand Down Expand Up @@ -154,6 +154,14 @@ PRIMARY KEY('GuildID'),
FOREIGN KEY('OwnerID') REFERENCES 'tblUsers'('UserID')
);";
cmd.ExecuteNonQuery();
cmd.CommandText = @"CREATE TABLE IF NOT EXISTS 'tblKeyRequests' (
'UserID' CHAR(36),
'GuildID' CHAR(36),
FOREIGN KEY('UserID') REFERENCES 'tblUsers'('UserID'),
FOREIGN KEY('GuildID') REFERENCES 'tblGuilds'('GuildID'),
PRIMARY KEY('UserID', 'GuildID')
);";
cmd.ExecuteNonQuery();
cmd.CommandText = @"CREATE TABLE IF NOT EXISTS 'tblInvites' (
'Code' CHAR(8),
'GuildID' CHAR(36),
Expand Down Expand Up @@ -357,7 +365,7 @@ static void apiSendMessage(HttpListenerContext context)
IV = jsonBodyObject.iv,
};
}
if (string.IsNullOrEmpty(message.ChannelID) | string.IsNullOrEmpty(message.Text) | string.IsNullOrEmpty(token))
if (string.IsNullOrEmpty(message.ChannelID) | string.IsNullOrEmpty(message.Text) | string.IsNullOrEmpty(token))
{returnMissingParameterError(out responseMessage, out code);}
else if (!tokenValid(token)) returnInvalidTokenError(out responseMessage, out code);
else
Expand Down Expand Up @@ -1158,26 +1166,61 @@ FROM tblInvites
cmd.Parameters.AddWithValue("Code", inviteCode);
result = cmd.ExecuteScalar();
}
if (result != null)
{
string guildID = (string)result;
string userID = getUserIDFromToken(token);
addUserToGuild(userID, guildID);
responseMessage = null;
code = 200;
}
else
{
var responseJson = new { error = "Invalid invite code", errcode = "INVALID_INVITE"};
responseMessage = JsonConvert.SerializeObject(responseJson);
code = 400;
if (result != null)
{
string guildID = (string)result;
string userID = getUserIDFromToken(token);
addUserToGuild(userID, guildID);
responseMessage = null;
code = 200;
}
else
{
var responseJson = new { error = "Invalid invite code", errcode = "INVALID_INVITE"};
responseMessage = JsonConvert.SerializeObject(responseJson);
code = 400;
}
}
sendResponse(context, typeJson, code, responseMessage);
}
static void apiRequestKeys(HttpListenerContext context)
{

string? token;
string? guildID;
dynamic jsonBodyObject = parsePost(context);
int code;
string? responseMessage;
if (jsonBodyObject == null)
{
var responseJson = new { error = "Incorrectly formatted request", errcode = "FORMATTING_ERROR"};
responseMessage = JsonConvert.SerializeObject(responseJson);
sendResponse(context, typeJson, 400, responseMessage);
return;
}
else
{
token = jsonBodyObject.token;
guildID = jsonBodyObject.guildID;
}
if (string.IsNullOrEmpty(token)) returnMissingParameterError(out responseMessage, out code);
else if (!tokenValid(token)) returnInvalidTokenError(out responseMessage, out code);
else
{
string userID = getUserIDFromToken(token);
using (var con = new SQLiteConnection(connectionString))
using (var cmd = new SQLiteCommand(con))
{
con.Open();
cmd.CommandText = @"IF NOT EXISTS (SELECT * FROM tblKeyRequests WHERE UserID = @UserID AND GuildID = @GuildID)
INSERT INTO tblKeyRequests(UserID, GuildID)
VALUES (@UserID, @GuildID);";
cmd.Parameters.AddWithValue("UserID", userID);
cmd.Parameters.AddWithValue("GuildID", guildID);
}
code = 200;
responseMessage = null;
}
sendResponse(context, typeJson, code, responseMessage);
}
static string createToken(string userID)// Generates a token that the client can then use to authenticate with
{
Expand Down

0 comments on commit 8011c21

Please sign in to comment.