Address embryo

This commit is contained in:
Niklas Fondberg
2021-04-07 18:30:56 +02:00
parent 1b304930d3
commit f3f39b2097
5 changed files with 266 additions and 19 deletions
+76 -11
View File
@@ -1,7 +1,19 @@
import { SQLDataSource } from 'datasource-sql';
import { Maybe } from './types';
const MINUTE = 60;
interface Address {
id: number;
firstname: string;
}
interface ContactInformation {
email: string;
phone: string;
addressId: number;
}
interface Order {
id: number;
inserted: Date;
@@ -44,11 +56,13 @@ interface Order {
customerLastname: string;
customerEmail: string;
customerCellphone: string;
billingAddressId: number;
deliveryAddressId: number;
flyerIds: string;
market: string;
locale: string;
billingInformation: ContactInformation;
deliveryInformation: ContactInformation;
billingAddressId: number;
deliveryAddressId: number;
}
export class OrderAPI extends SQLDataSource {
@@ -56,19 +70,70 @@ export class OrderAPI extends SQLDataSource {
super(config);
}
async getAddress(addressId: number): Promise<Maybe<Address>> {
const row = await this.knex
.select('*')
.from('addresses')
.where('id', addressId)
.first()
.cache(MINUTE);
console.log('HERE', row);
return row
? {
id: row.id,
firstname: row.firstName,
}
: null;
/**
* address = cls()
address.id = row["id"]
address.firstname = row["first_name"]
address.lastname = row["last_name"]
address.companyname = row["company_name"]
address.address1 = row["address1"]
address.address2 = row["address2"]
address.countryCode = row["country_code"]
address.city = row["city"]
address.zipcode = row["zipcode"]
address.stateCountyOrRegion = row["state"]
return address
def resolve_recipientName(self, info):
if self.firstname or self.lastname:
return "{} {}".format(self.firstname, self.lastname).strip()
*/
}
getBillingInformation(row): ContactInformation {
return {
email: 'niklas.fondberg@photowall.se',
phone: '+46761386397',
addressId: row.billingAddressId,
};
}
getDeliveryInformation(row): ContactInformation {
return {
email: 'niklas.fondberg@photowall.se',
phone: '+46761386397',
addressId: row.deliveryAddressId,
};
}
async getOrders() {
const data = await this.knex
return await this.knex
.select('*')
.from('orders')
.where('inserted', '>=', '2021-03-01T00:00:00Z')
.cache(MINUTE);
console.log(data);
return [
{ id: 1, countryCode: 'SE' },
{ id: 2, countryCode: 'DK' },
];
.cache(MINUTE)
.then((rows) =>
rows.map((row) => {
row.billingInformation = this.getBillingInformation(row);
row.deliveryInformation = this.getDeliveryInformation(row);
return row;
}),
);
}
async getOrder(id: number): Promise<Order> {