upd(config): change the way stripeAgeCheck is handled in config file

This commit is contained in:
Marie 2024-08-23 20:09:15 +02:00
parent dbded3b68d
commit b3b5872e3e
No known key found for this signature in database
GPG key ID: 56569BBE47D2C828
6 changed files with 26 additions and 20 deletions

View file

@ -298,9 +298,10 @@ checkActivityPubGetSignature: false
# maxFileSize: 262144000
# enable stripe identity for ID verification
# stripeVerify: true
# stripeKey: sk_
# stripeHookKey: whsec_
#stripeAgeCheck:
# enabled: true
# key: sk_
# hookKey: whsec_
# Upload or download file size limits (bytes)
#maxFileSize: 262144000

View file

@ -313,9 +313,10 @@ checkActivityPubGetSignature: false
# maxFileSize: 262144000
# enable stripe identity for ID verification
# stripeVerify: true
# stripeKey: sk_
# stripeHookKey: whsec_
#stripeAgeCheck:
# enabled: true
# key: sk_
# hookKey: whsec_
# PID File of master process
#pidFile: /tmp/misskey.pid

View file

@ -108,9 +108,11 @@ type Source = {
maxFileSize: number;
};
stripeVerify?: boolean;
stripeKey?: string;
stripeHookKey?: string;
stripeAgeCheck?: {
enabled: boolean;
key: string;
hookKey: string;
};
pidFile: string;
};
@ -201,9 +203,11 @@ export type Config = {
maxFileSize: number;
} | undefined;
stripeVerify: boolean | undefined;
stripeKey: string;
stripeHookKey: string;
stripeAgeCheck: {
enabled: boolean | undefined;
key: string;
hookKey: string;
} | undefined;
pidFile: string;
};
@ -327,9 +331,7 @@ export function loadConfig(): Config {
perUserNotificationsMaxCount: config.perUserNotificationsMaxCount ?? 500,
deactivateAntennaThreshold: config.deactivateAntennaThreshold ?? (1000 * 60 * 60 * 24 * 7),
import: config.import,
stripeVerify: config.stripeVerify ?? false,
stripeKey: config.stripeKey ?? '',
stripeHookKey: config.stripeHookKey ?? '',
stripeAgeCheck: config.stripeAgeCheck,
pidFile: config.pidFile,
};
}

View file

@ -112,7 +112,7 @@ export class ServerService implements OnApplicationShutdown {
fastify.register(this.fileServerService.createServer);
fastify.register(this.activityPubServerService.createServer);
// only enable stripe webhook if verification is enabled
if (this.config.stripeVerify) fastify.register(this.stripeHookServerService.createServer, { prefix: '/stripe' });
if (this.config.stripeAgeCheck?.enabled) fastify.register(this.stripeHookServerService.createServer, { prefix: '/stripe' });
fastify.register(this.nodeinfoServerService.createServer);
fastify.register(this.wellKnownServerService.createServer);
fastify.register(this.oauth2ProviderService.createServer, { prefix: '/oauth' });

View file

@ -41,7 +41,9 @@ export class StripeHookServerService {
request: FastifyRequest,
reply: FastifyReply,
) {
const stripe = new Stripe(this.config.stripeKey);
if (!this.config.stripeAgeCheck) return reply.code(400);
const stripe = new Stripe(this.config.stripeAgeCheck.key);
if (request.rawBody == null) {
// Bad request
@ -63,7 +65,7 @@ export class StripeHookServerService {
// Verify the event came from Stripe
try {
const sig = headers['stripe-signature']!;
event = stripe.webhooks.constructEvent(body, sig, this.config.stripeHookKey);
event = stripe.webhooks.constructEvent(body, sig, this.config.stripeAgeCheck.hookKey);
} catch (err: any) {
// On error, log and return the error message
console.log(`❌ Error message: ${err.message}`);

View file

@ -53,7 +53,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
private config: Config,
) {
super(meta, paramDef, async (ps, me) => {
if (!this.config.stripeVerify) throw new ApiError(meta.errors.stripeIsDisabled);
if (!this.config.stripeAgeCheck?.enabled) throw new ApiError(meta.errors.stripeIsDisabled);
const userProfile = await this.usersRepository.findOne({
where: {
@ -61,7 +61,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
}
});
const stripe = new Stripe(this.config.stripeKey);
const stripe = new Stripe(this.config.stripeAgeCheck.key);
if (userProfile == null) {
throw new ApiError(meta.errors.userIsDeleted);