update api to use cleaner method of verifying query params
This commit is contained in:
parent
e0e013bf61
commit
1240bff99c
|
@ -9,11 +9,12 @@ import {
|
||||||
import { generateApiDeleteEmail } from '../../commandUtils.ts';
|
import { generateApiDeleteEmail } from '../../commandUtils.ts';
|
||||||
import utils from '../../utils.ts';
|
import utils from '../../utils.ts';
|
||||||
import stdResp from '../stdResponses.ts';
|
import stdResp from '../stdResponses.ts';
|
||||||
|
import { verifyQueryHasParams } from '../utils.ts';
|
||||||
|
|
||||||
export const apiKeyDelete = async (query: Map<string, string>, apiUserid: bigint, apiUserEmail: string, apiUserDelCode: string): Promise<Response> => {
|
export const apiKeyDelete = async (query: Map<string, string>, apiUserid: bigint, apiUserEmail: string, apiUserDelCode: string): Promise<Response> => {
|
||||||
if (query.has('user') && (query.get('user') || '').length > 0 && query.has('email') && (query.get('email') || '').length > 0) {
|
if (verifyQueryHasParams(query, ['user', 'email'])) {
|
||||||
if (apiUserid === BigInt(query.get('user') || '0') && apiUserEmail === query.get('email')) {
|
if (apiUserid === BigInt(query.get('user') || '0') && apiUserEmail === query.get('email')) {
|
||||||
if (query.has('code') && (query.get('code') || '').length > 0) {
|
if (verifyQueryHasParams(query, ['code'])) {
|
||||||
if ((query.get('code') || '') === apiUserDelCode) {
|
if ((query.get('code') || '') === apiUserDelCode) {
|
||||||
// User has recieved their delete code and we need to delete the account now
|
// User has recieved their delete code and we need to delete the account now
|
||||||
let erroredOut = false;
|
let erroredOut = false;
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
import dbClient from '../../db/client.ts';
|
import dbClient from '../../db/client.ts';
|
||||||
import stdResp from '../stdResponses.ts';
|
import stdResp from '../stdResponses.ts';
|
||||||
import utils from '../../utils.ts';
|
import utils from '../../utils.ts';
|
||||||
|
import { verifyQueryHasParams } from '../utils.ts';
|
||||||
|
|
||||||
export const apiChannel = async (query: Map<string, string>, apiUserid: bigint): Promise<Response> => {
|
export const apiChannel = async (query: Map<string, string>, apiUserid: bigint): Promise<Response> => {
|
||||||
if (query.has('user') && (query.get('user') || '').length > 0) {
|
if (verifyQueryHasParams(query, ['user'])) {
|
||||||
if (apiUserid === BigInt(query.get('user') || '0')) {
|
if (apiUserid === BigInt(query.get('user') || '0')) {
|
||||||
// Flag to see if there is an error inside the catch
|
// Flag to see if there is an error inside the catch
|
||||||
let erroredOut = false;
|
let erroredOut = false;
|
||||||
|
|
|
@ -9,9 +9,10 @@ import {
|
||||||
import { generateApiKeyEmail } from '../../commandUtils.ts';
|
import { generateApiKeyEmail } from '../../commandUtils.ts';
|
||||||
import utils from '../../utils.ts';
|
import utils from '../../utils.ts';
|
||||||
import stdResp from '../stdResponses.ts';
|
import stdResp from '../stdResponses.ts';
|
||||||
|
import { verifyQueryHasParams } from '../utils.ts';
|
||||||
|
|
||||||
export const apiKey = async (query: Map<string, string>): Promise<Response> => {
|
export const apiKey = async (query: Map<string, string>): Promise<Response> => {
|
||||||
if (query.has('user') && (query.get('user') || '').length > 0 && query.has('email') && (query.get('email') || '').length > 0) {
|
if (verifyQueryHasParams(query, ['user', 'email'])) {
|
||||||
// Generate new secure key
|
// Generate new secure key
|
||||||
const newKey = await nanoid(25);
|
const newKey = await nanoid(25);
|
||||||
|
|
||||||
|
|
|
@ -6,9 +6,10 @@ import {
|
||||||
} from '../../../deps.ts';
|
} from '../../../deps.ts';
|
||||||
import stdResp from '../stdResponses.ts';
|
import stdResp from '../stdResponses.ts';
|
||||||
import utils from '../../utils.ts';
|
import utils from '../../utils.ts';
|
||||||
|
import { verifyQueryHasParams } from '../utils.ts';
|
||||||
|
|
||||||
export const apiKeyAdmin = async (query: Map<string, string>, apiUserid: bigint): Promise<Response> => {
|
export const apiKeyAdmin = async (query: Map<string, string>, apiUserid: bigint): Promise<Response> => {
|
||||||
if (query.has('user') && (query.get('user') || '').length > 0 && query.has('a') && (query.get('a') || '').length > 0) {
|
if (verifyQueryHasParams(query, ['user', 'a'])) {
|
||||||
if (apiUserid === config.api.admin && apiUserid === BigInt(query.get('a') || '0')) {
|
if (apiUserid === config.api.admin && apiUserid === BigInt(query.get('a') || '0')) {
|
||||||
// Generate new secure key
|
// Generate new secure key
|
||||||
const newKey = await nanoid(25);
|
const newKey = await nanoid(25);
|
||||||
|
|
|
@ -12,19 +12,13 @@ import { RollModifiers } from '../../mod.d.ts';
|
||||||
import utils from '../../utils.ts';
|
import utils from '../../utils.ts';
|
||||||
import { queueRoll } from '../../solver/rollQueue.ts';
|
import { queueRoll } from '../../solver/rollQueue.ts';
|
||||||
import stdResp from '../stdResponses.ts';
|
import stdResp from '../stdResponses.ts';
|
||||||
|
import { verifyQueryHasParams } from '../utils.ts';
|
||||||
|
|
||||||
const apiWarning = `The following roll was conducted using my built in API. If someone in this channel did not request this roll, please report API abuse here: <${config.api.supportURL}>`;
|
const apiWarning = `The following roll was conducted using my built in API. If someone in this channel did not request this roll, please report API abuse here: <${config.api.supportURL}>`;
|
||||||
|
|
||||||
export const apiRoll = async (query: Map<string, string>, apiUserid: bigint): Promise<Response> => {
|
export const apiRoll = async (query: Map<string, string>, apiUserid: bigint): Promise<Response> => {
|
||||||
// Make sure query contains all the needed parts
|
// Make sure query contains all the needed parts
|
||||||
if (
|
if (verifyQueryHasParams(query, ['user', 'channel', 'rollstr'])) {
|
||||||
query.has('rollstr') &&
|
|
||||||
(query.get('rollstr') || '').length > 0 &&
|
|
||||||
query.has('channel') &&
|
|
||||||
(query.get('channel') || '').length > 0 &&
|
|
||||||
query.has('user') &&
|
|
||||||
(query.get('user') || '').length > 0
|
|
||||||
) {
|
|
||||||
if (query.has('n') && query.has('m')) {
|
if (query.has('n') && query.has('m')) {
|
||||||
// Alert API user that they shouldn't be doing this
|
// Alert API user that they shouldn't be doing this
|
||||||
return stdResp.BadRequest("Cannot have both 'n' and 'm'.");
|
return stdResp.BadRequest("Cannot have both 'n' and 'm'.");
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
import dbClient from '../../db/client.ts';
|
import dbClient from '../../db/client.ts';
|
||||||
import stdResp from '../stdResponses.ts';
|
import stdResp from '../stdResponses.ts';
|
||||||
import utils from '../../utils.ts';
|
import utils from '../../utils.ts';
|
||||||
|
import { verifyQueryHasParams } from '../utils.ts';
|
||||||
|
|
||||||
export const apiChannelAdd = async (query: Map<string, string>, apiUserid: bigint): Promise<Response> => {
|
export const apiChannelAdd = async (query: Map<string, string>, apiUserid: bigint): Promise<Response> => {
|
||||||
if (query.has('user') && (query.get('user') || '').length > 0 && query.has('channel') && (query.get('channel') || '').length > 0) {
|
if (verifyQueryHasParams(query, ['user', 'channel'])) {
|
||||||
if (apiUserid === BigInt(query.get('user') || '0')) {
|
if (apiUserid === BigInt(query.get('user') || '0')) {
|
||||||
// Flag to see if there is an error inside the catch
|
// Flag to see if there is an error inside the catch
|
||||||
let erroredOut = false;
|
let erroredOut = false;
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
import dbClient from '../../db/client.ts';
|
import dbClient from '../../db/client.ts';
|
||||||
import stdResp from '../stdResponses.ts';
|
import stdResp from '../stdResponses.ts';
|
||||||
import utils from '../../utils.ts';
|
import utils from '../../utils.ts';
|
||||||
|
import { verifyQueryHasParams } from '../utils.ts';
|
||||||
|
|
||||||
export const apiChannelManageActive = async (query: Map<string, string>, apiUserid: bigint, path: string): Promise<Response> => {
|
export const apiChannelManageActive = async (query: Map<string, string>, apiUserid: bigint, path: string): Promise<Response> => {
|
||||||
if (query.has('channel') && (query.get('channel') || '').length > 0 && query.has('user') && (query.get('user') || '').length > 0) {
|
if (verifyQueryHasParams(query, ['user', 'channel'])) {
|
||||||
if (apiUserid === BigInt(query.get('user') || '0')) {
|
if (apiUserid === BigInt(query.get('user') || '0')) {
|
||||||
// Flag to see if there is an error inside the catch
|
// Flag to see if there is an error inside the catch
|
||||||
let value,
|
let value,
|
||||||
|
|
|
@ -2,16 +2,10 @@ import config from '../../../config.ts';
|
||||||
import dbClient from '../../db/client.ts';
|
import dbClient from '../../db/client.ts';
|
||||||
import stdResp from '../stdResponses.ts';
|
import stdResp from '../stdResponses.ts';
|
||||||
import utils from '../../utils.ts';
|
import utils from '../../utils.ts';
|
||||||
|
import { verifyQueryHasParams } from '../utils.ts';
|
||||||
|
|
||||||
export const apiChannelManageBan = async (query: Map<string, string>, apiUserid: bigint, path: string): Promise<Response> => {
|
export const apiChannelManageBan = async (query: Map<string, string>, apiUserid: bigint, path: string): Promise<Response> => {
|
||||||
if (
|
if (verifyQueryHasParams(query, ['user', 'channel', 'a'])) {
|
||||||
query.has('a') &&
|
|
||||||
(query.get('a') || '').length > 0 &&
|
|
||||||
query.has('channel') &&
|
|
||||||
(query.get('channel') || '').length > 0 &&
|
|
||||||
query.has('user') &&
|
|
||||||
(query.get('user') || '').length > 0
|
|
||||||
) {
|
|
||||||
if (apiUserid === config.api.admin && apiUserid === BigInt(query.get('a') || '0')) {
|
if (apiUserid === config.api.admin && apiUserid === BigInt(query.get('a') || '0')) {
|
||||||
// Flag to see if there is an error inside the catch
|
// Flag to see if there is an error inside the catch
|
||||||
let value,
|
let value,
|
||||||
|
|
|
@ -2,9 +2,10 @@ import config from '../../../config.ts';
|
||||||
import dbClient from '../../db/client.ts';
|
import dbClient from '../../db/client.ts';
|
||||||
import stdResp from '../stdResponses.ts';
|
import stdResp from '../stdResponses.ts';
|
||||||
import utils from '../../utils.ts';
|
import utils from '../../utils.ts';
|
||||||
|
import { verifyQueryHasParams } from '../utils.ts';
|
||||||
|
|
||||||
export const apiKeyManage = async (query: Map<string, string>, apiUserid: bigint, path: string): Promise<Response> => {
|
export const apiKeyManage = async (query: Map<string, string>, apiUserid: bigint, path: string): Promise<Response> => {
|
||||||
if (query.has('a') && (query.get('a') || '').length > 0 && query.has('user') && (query.get('user') || '').length > 0) {
|
if (verifyQueryHasParams(query, ['user', 'a'])) {
|
||||||
if (apiUserid === config.api.admin && apiUserid === BigInt(query.get('a') || '0')) {
|
if (apiUserid === config.api.admin && apiUserid === BigInt(query.get('a') || '0')) {
|
||||||
// Flag to see if there is an error inside the catch
|
// Flag to see if there is an error inside the catch
|
||||||
let key: string,
|
let key: string,
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
export const verifyQueryHasParams = (query: Map<string, string>, desiredParams: Array<string>): boolean =>
|
||||||
|
desiredParams.every((param) => {
|
||||||
|
return query.has(param) && (query.get(param) || '').length > 0;
|
||||||
|
});
|
Loading…
Reference in New Issue