Added more queries
This commit is contained in:
parent
c413f7aa73
commit
4fff09443d
108
queries.js
108
queries.js
@ -182,4 +182,110 @@ export const productByCodeUsageYearMonthQuery = `SELECT DISTINCT
|
||||
FROM ${process.env.ATHENA_CU_TABLE}
|
||||
WHERE LOWER(line_item_product_code) = LOWER('%productCode%')
|
||||
AND year = '%year%'
|
||||
AND month = '%month%';`;
|
||||
AND month = '%month%';`;
|
||||
|
||||
export const invoices = `select DISTINCT
|
||||
bill_invoice_id as invoiceId,
|
||||
year, month
|
||||
FROM ${process.env.ATHENA_CU_TABLE}`;
|
||||
|
||||
export const invoiceById = `select DISTINCT
|
||||
bill_invoice_id as invoiceId,
|
||||
year, month,
|
||||
line_item_product_code as productCode,
|
||||
line_item_usage_account_id as accountId,
|
||||
line_item_resource_id as resourceId
|
||||
FROM ${process.env.ATHENA_CU_TABLE}
|
||||
WHERE bill_invoice_id = '%invoiceId%';`;
|
||||
|
||||
export const invoiceByIdProducts = `select DISTINCT
|
||||
bill_invoice_id as invoiceId,
|
||||
year, month,
|
||||
line_item_product_code as productCode,
|
||||
line_item_usage_account_id as accountId,
|
||||
line_item_resource_id as resourceId
|
||||
FROM ${process.env.ATHENA_CU_TABLE}
|
||||
WHERE bill_invoice_id = '%invoiceId%';`;
|
||||
|
||||
export const invoiceByProductCode = `select DISTINCT
|
||||
bill_invoice_id as invoiceId,
|
||||
year, month,
|
||||
line_item_product_code as productCode,
|
||||
line_item_usage_account_id as accountId,
|
||||
line_item_resource_id as resourceId
|
||||
FROM ${process.env.ATHENA_CU_TABLE}
|
||||
WHERE bill_invoice_id = '%invoiceId%'
|
||||
AND LOWER(line_item_product_code) = LOWER('%productCode%');`;
|
||||
|
||||
export const invoiceByProductCodeUsage = `select DISTINCT
|
||||
bill_invoice_id as invoiceId,
|
||||
year, month,
|
||||
line_item_product_code as productCode,
|
||||
line_item_usage_account_id as accountId,
|
||||
line_item_resource_id as resourceId,
|
||||
line_item_usage_type AS usageType,
|
||||
line_item_usage_amount AS usageAmount,
|
||||
line_item_unblended_rate AS unblendedRate,
|
||||
line_item_unblended_cost AS unblendedCost,
|
||||
line_item_blended_rate AS blendedRate,
|
||||
line_item_blended_cost AS blendedCost,
|
||||
pricing_term AS pricingTerm,
|
||||
pricing_unit AS pricingUnit,
|
||||
pricing_rate_code AS pricingRateCode,
|
||||
pricing_currency AS pricingCurrency,
|
||||
line_item_usage_start_date AS startDate,
|
||||
line_item_usage_end_date AS endDate
|
||||
FROM ${process.env.ATHENA_CU_TABLE}
|
||||
WHERE bill_invoice_id = '%invoiceId%'
|
||||
AND LOWER(line_item_product_code) = LOWER('%productCode%');`;
|
||||
|
||||
export const invoiceByIdAccounts = `select DISTINCT
|
||||
bill_invoice_id as invoiceId,
|
||||
year, month,
|
||||
line_item_usage_account_id as accountId
|
||||
FROM ${process.env.ATHENA_CU_TABLE}
|
||||
WHERE bill_invoice_id = '%invoiceId%';`;
|
||||
|
||||
export const invoiceByIdAccount = `select DISTINCT
|
||||
bill_invoice_id as invoiceId,
|
||||
year, month,
|
||||
line_item_product_code as productCode,
|
||||
line_item_usage_account_id as accountId,
|
||||
line_item_resource_id as resourceId
|
||||
FROM ${process.env.ATHENA_CU_TABLE}
|
||||
WHERE bill_invoice_id = '%invoiceId%'
|
||||
AND line_item_usage_account_id = '%accountId%';`;
|
||||
|
||||
export const invoiceByIdAccountProducts = `select DISTINCT
|
||||
bill_invoice_id as invoiceId,
|
||||
year, month,
|
||||
line_item_product_code as productCode,
|
||||
line_item_usage_account_id as accountId,
|
||||
line_item_resource_id as resourceId
|
||||
FROM ${process.env.ATHENA_CU_TABLE}
|
||||
WHERE bill_invoice_id = '%invoiceId%'
|
||||
AND line_item_usage_account_id = '%accountId%'
|
||||
AND LOWER(line_item_product_code) = LOWER('%productCode%');`;
|
||||
|
||||
export const invoiceByIdAccountProductsUsage = `select DISTINCT
|
||||
bill_invoice_id as invoiceId,
|
||||
year, month,
|
||||
line_item_product_code as productCode,
|
||||
line_item_usage_account_id as accountId,
|
||||
line_item_resource_id as resourceId,
|
||||
line_item_usage_type AS usageType,
|
||||
line_item_usage_amount AS usageAmount,
|
||||
line_item_unblended_rate AS unblendedRate,
|
||||
line_item_unblended_cost AS unblendedCost,
|
||||
line_item_blended_rate AS blendedRate,
|
||||
line_item_blended_cost AS blendedCost,
|
||||
pricing_term AS pricingTerm,
|
||||
pricing_unit AS pricingUnit,
|
||||
pricing_rate_code AS pricingRateCode,
|
||||
pricing_currency AS pricingCurrency,
|
||||
line_item_usage_start_date AS startDate,
|
||||
line_item_usage_end_date AS endDate
|
||||
FROM ${process.env.ATHENA_CU_TABLE}
|
||||
WHERE bill_invoice_id = '%invoiceId%'
|
||||
AND line_item_usage_account_id = '%accountId%'
|
||||
AND LOWER(line_item_product_code) = LOWER('%productCode%');`;
|
||||
78
server.js
78
server.js
@ -142,6 +142,84 @@ server.get("/products/:productCode/usage/:year/:month", async (request, reply) =
|
||||
return results;
|
||||
});
|
||||
|
||||
server.get("/invoices", async (request, reply) => {
|
||||
const query = queries.invoices;
|
||||
const queryExecutionId = await executeQueryAsync(query);
|
||||
const results = await retrieveResultsAsync(queryExecutionId);
|
||||
return results;
|
||||
});
|
||||
|
||||
server.get("/invoices/:invoiceId", async (request, reply) => {
|
||||
const query = queries.invoiceById
|
||||
.replace('%invoiceId%', request.params.invoiceId);
|
||||
const queryExecutionId = await executeQueryAsync(query);
|
||||
const results = await retrieveResultsAsync(queryExecutionId);
|
||||
return results;
|
||||
});
|
||||
|
||||
server.get("/invoices/:invoiceId/products", async (request, reply) => {
|
||||
const query = queries.invoiceByIdProducts
|
||||
.replace('%invoiceId%', request.params.invoiceId);
|
||||
const queryExecutionId = await executeQueryAsync(query);
|
||||
const results = await retrieveResultsAsync(queryExecutionId);
|
||||
return results;
|
||||
});
|
||||
|
||||
server.get("/invoices/:invoiceId/products/:productCode", async (request, reply) => {
|
||||
const query = queries.invoiceByProductCode
|
||||
.replace('%invoiceId%', request.params.invoiceId)
|
||||
.replace('%productCode%', request.params.productCode);
|
||||
const queryExecutionId = await executeQueryAsync(query);
|
||||
const results = await retrieveResultsAsync(queryExecutionId);
|
||||
return results;
|
||||
});
|
||||
|
||||
server.get("/invoices/:invoiceId/products/:productCode/usage", async (request, reply) => {
|
||||
const query = queries.invoiceByProductCodeUsage
|
||||
.replace('%invoiceId%', request.params.invoiceId)
|
||||
.replace('%productCode%', request.params.productCode);
|
||||
const queryExecutionId = await executeQueryAsync(query);
|
||||
const results = await retrieveResultsAsync(queryExecutionId);
|
||||
return results;
|
||||
});
|
||||
|
||||
server.get("/invoices/:invoiceId/accounts", async (request, reply) => {
|
||||
const query = queries.invoiceByIdAccounts
|
||||
.replace('%invoiceId%', request.params.invoiceId);
|
||||
const queryExecutionId = await executeQueryAsync(query);
|
||||
const results = await retrieveResultsAsync(queryExecutionId);
|
||||
return results;
|
||||
});
|
||||
|
||||
server.get("/invoices/:invoiceId/accounts/:accountId", async (request, reply) => {
|
||||
const query = queries.invoiceByIdAccount
|
||||
.replace('%invoiceId%', request.params.invoiceId)
|
||||
.replace('%accountId%', request.params.accountId);
|
||||
const queryExecutionId = await executeQueryAsync(query);
|
||||
const results = await retrieveResultsAsync(queryExecutionId);
|
||||
return results;
|
||||
});
|
||||
|
||||
server.get("/invoices/:invoiceId/accounts/:accountId/products/:productCode", async (request, reply) => {
|
||||
const query = queries.invoiceByIdAccountProducts
|
||||
.replace('%invoiceId%', request.params.invoiceId)
|
||||
.replace('%accountId%', request.params.accountId)
|
||||
.replace('%productCode%', request.params.productCode);
|
||||
const queryExecutionId = await executeQueryAsync(query);
|
||||
const results = await retrieveResultsAsync(queryExecutionId);
|
||||
return results;
|
||||
});
|
||||
|
||||
server.get("/invoices/:invoiceId/accounts/:accountId/products/:productCode/usage", async (request, reply) => {
|
||||
const query = queries.invoiceByIdAccountProductsUsage
|
||||
.replace('%invoiceId%', request.params.invoiceId)
|
||||
.replace('%accountId%', request.params.accountId)
|
||||
.replace('%productCode%', request.params.productCode);
|
||||
const queryExecutionId = await executeQueryAsync(query);
|
||||
const results = await retrieveResultsAsync(queryExecutionId);
|
||||
return results;
|
||||
});
|
||||
|
||||
try {
|
||||
await server.listen({ port: 3000 })
|
||||
} catch (err) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user