async sendNotificationMessage(message, type, context) { const params = { Message: JSON.stringify({ message, type, context }), TopicArn: this.topicArn(`${process.env.CUBEJS_APP || 'cubejs'}-process`) }; await sns.publish(params).promise(); }
let data = await S3.getObject(params).promise()
save(order) { const params = { TableName: this.tableName, Item: order }; return this.documentClient.put(params).promise(); }
async broadcast(message) { const data = await this.documentClient .scan({ TableName: this.connectionTableName }) .promise(); return Promise.all( data.Items.map(item => new WebSocketClient(this.endpoint, item.connectionId).send(message) ) ); }
async getTotal() { const objects = await s3 .listObjects({ Bucket: bucket, Prefix: id }) .promise(); return Number(objects.Contents.length); }
const getWebSocketUrl = async () => { const apig = new AWS.ApiGatewayV2(); const wsApis = await apig.getApis().promise(); const wsApi = wsApis.Items.find(i => i.Name === WS_API_NAME); if (!wsApi) { throw new Error(`${WS_API_NAME} could not be found!`); } return `${wsApi.ApiEndpoint}/${SERVERLESS_STAGE}`; }
send(orderEvent) { const kinesis = new AWS.Kinesis(); return kinesis .putRecord({ Data: JSON.stringify(orderEvent), PartitionKey: orderEvent.orderId, StreamName: process.env.ORDER_STREAM_NAME }) .promise(); }
const storeApiKey = () => { return new AWS.SSM() .putParameter({ Name: `/${PREFIX}/apikey`, Type: "SecureString", Value: "supersecretkey", Overwrite: true }) .promise(); }
removeConnection(connectionId) { const deleteParams = { TableName: this.connectionTableName, Key: { connectionId } }; return this.documentClient.delete(deleteParams).promise(); }
async findAll() { const params = { TableName: this.tableName }; const data = await this.documentClient.scan(params).promise(); return data.Items; }
addConnection(connectionId) { const putParams = { TableName: this.connectionTableName, Item: { connectionId } }; return this.documentClient.put(putParams).promise(); }
save(order) { const params = { TableName: this.tableName, Item: order }; return this.documentClient.put(params).promise(); }
send(orderEvent) { const kinesis = new AWS.Kinesis(); return kinesis .putRecord({ Data: JSON.stringify(orderEvent), PartitionKey: orderEvent.orderId, StreamName: process.env.ORDER_STREAM_NAME }) .promise(); }
async findAll() { const params = { TableName: this.tableName }; const data = await this.documentClient.scan(params).promise(); return data.Items; }