@vriddhi-beckn/core-specs
Version:
Core specifications of Beckn Protocol
38 lines (33 loc) • 919 B
JavaScript
const Joi = require("joi");
const _BecknSchema = require("./_BecknSchema");
const Subscriber = require("./Subscriber");
const status_enum = [
"INITIATED",
"UNDER_SUBSCRIPTION",
"SUBSCRIBED",
"EXPIRED",
"UNSUBSCRIBED",
"INVALID_SSL",
];
class Subscription extends _BecknSchema {
static joiSchema = Subscriber.joiSchema.append({
key_id: Joi.string()
.pattern(
new RegExp(
/^[0-9A-F]{8}-[0-9A-F]{4}-[1][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
),
)
.required(),
signing_public_key: Joi.string().required(),
encr_public_key: Joi.string().required(),
valid_from: Joi.date().required(),
valid_until: Joi.date().required(),
status: Joi.string()
.valid(...status_enum)
.example(status_enum[0])
.required(),
created: Joi.date().required(),
updated: Joi.date().required(),
});
}
module.exports = Subscription;