typo
Created by  boogerlad  on December 16, 2020
FFK6NMBEFKKR5MV3HO7V3XVKK5WXKUW4WTO4XZJTUMHP5ARDD5IQC
pnpm
Created by  boogerlad  on December 16, 2020
CEKQYVIO7VHFWTOFSCSPWB523S66TQ4QGZMEQFINIVMOHNITXHMAC
don't need /
Created by  boogerlad  on December 16, 2020
26JXN2RF5GSDVMVKT6KR2JMGSDGSN6LHI3RJWCQW4P6F5V6WWTCAC
frontend
Created by  boogerlad  on December 16, 2020
SK7NYDH7U526K2MATUOA3BSQMANYSZLGMBUUDVLG37XJJ3YIEE7QC
todo and comment re: price history
Created by  boogerlad  on December 16, 2020
4XIO43KQHW4K2UDUX52TM3U5KR3CK42MA2V5Z6ZBQHCJUQPZO4QAC
.ignore should be in root
Created by  boogerlad  on December 16, 2020
AF6VCAQZN7TPLP7TE7CTUUV6B4NV3OWGYE3Q2H7ZQ2WKLSDNJBZQC
apparently misunderstood what pigul remove does. rm works fine. still pijul git shouldnt have imported this file
Created by  boogerlad  on December 16, 2020
UDIBKULRPNWBJTKBJ4R6B4S65K2XUF6QUKBNCJOZPX6XWAKT2QOQC
pijul bug, can edit file but can't remove
Created by  boogerlad  on December 16, 2020
NVU4HKPUWNGHYFSXCNGGV6BX6K4AP7C25U7NTTG4W2RNOYT7GBOQC
move to pijul, monorepo
Created by  boogerlad  on December 16, 2020
WGE7FMGRBT4AVRXKKJ4LZWQGTD6QL2INWXSBCQOMEP2Z7R33TA2QC
newly registered user is logged in
Created by  boogerlad  on December 15, 2020
VR3F4DHVLL7ZRXFQNR2245D7V5GHZ6V7MIL4ZC27O2LJ7622JM7QC
fix remember me due to typo
Created by  boogerlad  on December 15, 2020
W2OWXGNK7XO5KWNCS6MJX6R77LW7Y6JI2G5CBAHT4PN4GOC4WR5AC
who logged in / signed out event
Created by  boogerlad  on December 14, 2020
C7R375ELQMSUTNZW42IWBN7GOMU57SSBAS7VFRA7LI57D7U7BFZQC
+- instead of actual values since initial value is sent on subscribe. not sure if this is "better"
Created by  boogerlad  on December 14, 2020
A4HLZ3RSXBECKCLTHPLPXUUL33GY74MH2CMMNRM2NK5NFJLR6UBQC
send initial values for count and authenticated. previously, needed to wait for event
Created by  boogerlad  on December 14, 2020
7CPQVPRYILSXGTEHQWUCVNSUNWX7M5SZOQW2HDC7SU3QLSKNJ2YAC
variable name already in use. really should refactor gigantic switch statement...
Created by  boogerlad  on November 26, 2020
I2YRQJLSS4PVF77V2IB3ZZP54FNTLUQJE3FTB5GPNU4L2JCH66KQC
ocs continues to surprise with stupid non ascii in url
Created by  boogerlad  on November 26, 2020
EALAUEWMX2GWUZLZ664KDEX47CR6T5RNZJODPZDFX4ZZEG2HIKKAC
oops
Created by  boogerlad  on November 26, 2020
6ECWDY3RFVJIDJ335BWXNB7G3X7H27V6JK75WHJO33GBS2CORT2QC
update dependencies
Created by  boogerlad  on November 26, 2020
UA6FUQRQUU3NCWZ24GDWCF5VRD4F6ATYSJKPVMUVGE2JOYG7WSEQC
fuck roz
Created by  boogerlad  on November 25, 2020
Y5J5F72VRDZQYJJPD4UPS4I4VHWBXN22FATHE5EZNN5Q7Q4NBLUAC
don't attempt to insert into db if stock < 0
Created by  boogerlad  on September 28, 2020
LFTHO4ISUTY4UCBHBZTFWO73EEXQUZIMIBMGWYOU5NEW2VXJD4YQC
join_name and name mix up oops
Created by  boogerlad  on September 28, 2020
CSZD6XINVOSPH5N2E66H7LITXK53CTGKFPLUEDA3S3ZEN2VOLGPAC
fill in the alberta cannabis stub
Created by  boogerlad  on September 28, 2020
KW6P3EDCU2KVV3KAGBL2WZ72367NOLLJC42WDBP53XQ3WNH63OBQC
puppeteer can complain about zero width screenshots
Created by  boogerlad  on September 29, 2020
6J7T3WGAFRA54WV4Z3IU4V2KUGXTMRKGE5673HF573LCDHTI4F7AC
oops forgot to encrypt cart_id for authenticated
Created by  boogerlad  on September 23, 2020
H2SZHZTNZTB5ZVWSHUA3UASEDSIQ67UBHAYW33NP7KNPYMZUOXRAC
actually fix the order of join_name and name
Created by  boogerlad  on September 2, 2020
WXBWPWVX3WBPXP2QRUXSYNKNNAXO6QITKEE5JNYJCU6VQWFFPQ6QC
Revert "mixed up join_name and display_name oops" This reverts commit 933cbfefbab79a424d1901233fd82624863f3d3c.
Created by  boogerlad  on September 2, 2020
5RPACEZ43EAONV7XXUYFVMANDGJNAD7GQ3N7ESYITZI5UM7PGOVAC
fuck
Created by  boogerlad  on September 2, 2020
GCUNCRERAZAWTZ6D7FZYI4SRT5B7ZW5DI25PE25NEP4WZ55ZFYVAC
Change incorrect strain types for select products
Created by  David Ramsaran  on June 20, 2020
YNCCENQM2WU6OBTWDLWWEEQIHANLGXTI4DKZ3OJAROWPWNKVUVUAC
to compute taxes client side, what types of product the tax applies to is required
Created by  boogerlad  on September 2, 2020
U7BZVX5VS4IIY7CH6HFIYXK7UQBYYUN5VYVO45LVESF2PMW7A5VAC
fix constraint: anonymous cart can only be active, but carts associated to a user can be any state
Created by  boogerlad  on September 1, 2020
O6OZUOIH5U2SE3FS4ZUHM755FNYXEDXSRXREAEFZ36VNII4CPRJAC
change default database name
Created by  boogerlad  on September 1, 2020
OOJIMOOI3HGQK53CGYMWBTJC35MBYA4SSEV2DCCCLIRCDPHLSNWQC
mixed up join_name and display_name oops
Created by  boogerlad  on August 31, 2020
XLH7ZHUY4ZZWH43V2OIFXSHVK7LSUFO2NPYS2OML2LDDWQVK7JSAC
bccannabisstores scraper. needs to be cleaned up and tested further
Created by  boogerlad  on August 27, 2020
ND2EUAENR3TOEUMKLDAVAWAEW2XEIOHK4S4B2X6SIWFOOIAGZIEQC
details re automatic backup
Created by  yoajay  on August 24, 2020
AT3FNCTHLBL4N4AFEESCKU7ZO4JOMGODP2MAHWI2JTO3KPJXPSWQC
update readme dependencies due to use of nullish coalesing operator and optional chaining
Created by  boogerlad  on August 24, 2020
X3PVMJ2LCWFE2GQ3MABPPH7HRSAWF6R2DT6WQ5I6Q4IXQ5NLKL3QC
buildfix and fix potential runtime error in ios_product_id where species is defined twice
Created by  boogerlad  on August 23, 2020
VKFRSWSYYX7JNFGTWLWYTIALQJTOWKEDUISIJY4VLYOHHAE3EWCAC
instructions for range_agg postgres extension
Created by  yoajay  on August 19, 2020
THN4FNGXV7M5WVT6XF2QSMCUBNSMKYVRRTJ3NFPYDNZRRMLTFRLQC
oops. thanks e2e
Created by  boogerlad  on August 20, 2020
EAYCOESFDIPTAXN22QYTAFGISP6GFBGPGBX4WILGYJH7D3FK3TEAC
oops
Created by  boogerlad  on August 10, 2020
4VMZHHOOTDVK4RLXZ32VLLAA5SCL424MOVBPN7F6RT63A7YOTRVAC
Update Summit script to fetch new Dawson Creek store (brand change)
Created by  David Ramsaran  on August 5, 2020
QFATAUXF3SMSTZULKPCK4W3AZ4NEO3VFZE7SWIBDBXGC7JU5L6TAC
replace blake2 with blake3. I think node being a wrapper around openSSL makes it slow. 481,000ops/s vs 1,970,000ops/s decrease token length and hash length to 128bits(argon2 waiting for pr to land: https://github.com/ranisalt/node-argon2/pull/266) https://security.stackexchange.com/questions/102157/do-you-need-more-than-128-bit-entropy "128 bits of entropy are enough. if you generate a 256-bit AES key from a 128-bit seed and a strong PRNG, then you do not really have a 256-bit key." https://crypto.stackexchange.com/a/29618 "if you had random binary tokens, a token longer than [hash function digest length]bits would be useless." hex encode instead of base64 there exists a timing attack via dictionary reduction on hash prefix discovery therefore, not applicable to lobomj. password hashes are salted(if the salt is known, so is the hash) and tokens are of sufficient entropy to make brute force/dictionary infeasible. https://github.com/codahale/bcrypt-ruby/pull/43#issuecomment-15797932 https://github.com/aj-code/TimingIntrusionTool5000/blob/master/TimingAttackPresentation2012.pdf slide 21 https://crypto.stackexchange.com/questions/25607 https://security.stackexchange.com/questions/9192 https://crypto.stackexchange.com/questions/40433 "If "honey7dew" is replaced by something with high entropy (hopeless to guess), there demonstrably is no attack enabled by timing of the comparison: if there was one, it would break the first preimage resistance of the hash."
Created by  boogerlad  on July 30, 2020
RAN5QU4U2OVNLDGZVVTJNCXDN5GNAVPXGKHADZO2ML3Y5KLU4QPQC
colon is unnecessary to truncate file
Created by  boogerlad  on July 22, 2020
SHFBK6NF35A232HV7O46EPU5P73IUEAXQ4GGDUE34EANKTGISALAC
oops. update event for user acl needs key
Created by  boogerlad  on July 7, 2020
O33HFPFV4JJLC3MDGZRQ4OE6XTMG22YH75CVILMWV35YPI7MQE5QC
cloudinary will cry if CLOUDINARY_URL does not start with 'cloudinary://', so replace 'fake' with a dummy.
Created by  boogerlad  on July 6, 2020
UEM2RPSZTVWBR22Q76RY3ZN6YKUAL4MTSNRC56CGPVBNRSHMTZSQC
round price per gram to two decimal places. text prevents json fuckups
Created by  boogerlad  on July 6, 2020
PYMF3UUYKEDPFQGAJVMHHIM4YDYGC5XRIXWVUB63T5JW4MGVKGDAC
constraint: anonymous cart can only be active
Created by  boogerlad  on July 6, 2020
LUE57OK3OFZYP7GW4FL6SBV2MCBBEKQ2OFGKZSZ77AOBI6OKGDYQC
when stock less than zero, change to zero for ocs scrape
Created by  boogerlad  on July 6, 2020
TY6NASIOI6HMCD5WRABI36ZWGZDHU4WIFFBHHHIKNLQAUDJ7FVGAC
update dependencies deduplicate imports and stop reading the wrong .env don't upgrade the connection to a websocket if wrong origin switch from user type enum to god boolean + acl. this way, a user can be a(n) worker / owner of multiple stores don't bother caching the user type in ws anymore. always get the truth from database skip stock check if just changing cart's user implement otp login on connection as fallback to remember me token on connection login event instead of firth return minimum number of fields from user on unauthorized due to not >= store (owner || worker), update user acl event only publish number of authenticated / connected on change register logs in as well merge cart (associate anonymous cart to user on login / register, transfer line item from anonymous cart to authenticated cart, add quantities of line items with same menu item together from anonymous to authenticated cart) end connection on logout and old connection if exists if login elsewhere taxes for types (bc 20% vapes) + include tax in price when viewing products stock level now takes into account # of reserved trigger for stock decrement on ready -> paid min / max quantity filter for products when user / store deleted and last status of cart is 'placed' or 'ready', add fake final store / user cancelled event if god, created product will be visible for menu_item_loader. if store owner, not visible so that lobo can review implement roles so that a store owner / worker can only access their stores defined by the acl for menu items, reservations implement god see users' reservations and cancel implement the rest of the reservation flow notifications (store status update, user cancel) implement store add event sadly, lots of copy and paste. if the pattern is good, let's clean this up. I estimate 500 lines of code to be shaven off
Created by  boogerlad  on July 6, 2020
JP2LJ6B34S4IS6MPKF5LMMYUWIYMGU3JCJRRR4PTZ4IWM653JCXAC
note
Created by  boogerlad  on June 23, 2020
BXGNP4GARIQA5LT3AN2F22HHGJHLUOL3YKBWWJ6LQQKUWLPYB7OAC
relax filters for womyn and age
Created by  boogerlad  on June 22, 2020
5DG6KB27COILJJLJCUYQUJZHLW6IOARHCGKAAD6YFYC6OWRVWXKQC
age & sex
Created by  boogerlad  on June 19, 2020
RAUIRF46MUMMASOW444FBI3VZC24HIJUPRQA7LT4E3HMQI3HDDGAC
oops
Created by  boogerlad  on June 8, 2020
52U5IXSQECUL4VET7VOW4DBAHKM3EWZAAIMQK2PY7XSWEA55QMJAC
buildfix
Created by  boogerlad  on June 8, 2020
VRBT2IMFSXBOI6BBX3TOZEK4R3L7SU6VEZ75ENAEGGM7DXNUVB2AC
group store times by weekday, with special case of sunday evening to monday
Created by  boogerlad  on June 8, 2020
T4XGM2U2W7W3SM424W6JNEIJWOJQ5ILZWU45JPZUKTZMK77ZARKQC
oops forgot to remove endpoint after 1ff92aa99443b7f00c423a3f280fe7e2741f3d4b
Created by  boogerlad  on June 7, 2020
CD3LB4V4JMJH26X2PL2FTM2ETTYDVL3QC2E5N3O4U4JDDWIJZPIQC
typo
Created by  boogerlad  on June 7, 2020
BZUGIKIQSVUH7WZF4MQMPGP5E6WLTCRARMEG3HOT644W5BKOW7IQC
documentation: the two osrm services can't be bound to the same port...
Created by  boogerlad  on June 7, 2020
AFM7YF55TQPZS6MTNJALHSWX4IRXBEDCXHV7HTRQXKE6SPSOXBAAC
ocs can go kill themselves
Created by  boogerlad  on June 7, 2020
5NR7QBMVZ3NT3LRUTJDSRJVWC7A5UPVUK723N4MDPTHCWBEZWU7AC
fuck it client side stores since shimple enough
Created by  boogerlad  on June 4, 2020
NBNPI4ATCXHIMKSXW5VRS3KM4WJZZMOPD7H4QTDNOQFRSQYFSIBAC
store creation new fields, osrm_hints, store distance. Still undecided as to what to return for "stores" though...
Created by  boogerlad  on June 4, 2020
Z7XOXXDJ7T6E4ZCP2AK5YSXWE6TCDCLZEXAZPZZVLOY4WCFVZPHAC
more robust notmissing function. allows false as a valid value
Created by  boogerlad  on June 4, 2020
WY7P255VIAXUFUCYAE6INQHZLHHJYUUNWAWVTO2S6YIAWZBUERWQC
lift stores dump and summit greenline
Created by  boogerlad  on June 4, 2020
Y6DVC22CQACFO75XTUE4BZQXCVJAYOECY2F7M2IYV7AWFGOF5G3QC
update store table
Created by  boogerlad  on June 4, 2020
XQA3IQXSGAO2FST3F64WLVZ7JNLMQYKT3LO4SHHKYR2D765OPGHQC
consistent casing
Created by  boogerlad  on June 4, 2020
OTHS63V6453CI7UUKD64D672VVP7ETWYO2WIH6I46545LYDQSKGQC
fix invalid password error message not showing up due to webportal_hash being falsy
Created by  boogerlad  on May 26, 2020
DSVZLJ3ULDNYRUVWRIHGQSPZYXQ26UGXPPNIIQGKVSKOPWTPZCLQC
clarify updating a production database
Created by  boogerlad  on May 5, 2020
XHKWEFUGJ43XCMHZ7WZWI5DF52Y4L7T43GEZRLLLVMKOCKUIV5PQC
might as well upgrade every other dependency too
Created by  boogerlad  on May 5, 2020
CLMZIURF2TXSMQ6YZYXR5CHGMRW6V64YFQLRCP3H3I3XB2KKOJ6AC
node 14 dependency upgrade
Created by  boogerlad  on May 5, 2020
S7XXN4JDMHFSWRHFEFK6VZ6N5UAXNA2R3BYPLQYAF5NZR3HVMOAQC
fix potential infinite loop, since select may never resolve due to nullable quantity
Created by  boogerlad  on April 30, 2020
QEACJZMASEPS7E5IGIQSWSCOERTH5WMT3EJGSZZNLGWNKH6ZAS3AC
Create production.md
Created by  boogerlad  on May 4, 2020
UQH4JUNNLJ764QF5TLFJUB24Q7R2LZVQZTY7ITB2AC55CEU2KDIAC
update uws to work on nodejs 14. Conditional SSL support
Created by  boogerlad  on April 24, 2020
UC5U5CJBD5NP545XAXEIODLEEUSRIFUVTG5NO55SNMTAGV7ZOCMAC
allow sort by and show minimum price per gram for inhalation products for (all and similar) products.
Created by  boogerlad  on April 21, 2020
AYQJCODFIHXK2UNLA55D3Y2IDJDP5BMQHUA7UNGDHBZUPDBCY74QC
implement cart with stock level and possession limit checking
Created by  boogerlad  on April 16, 2020
76HUJPOPXCN2NMOWLI6JOY7HR35EL4IBHMES3DBJVCFZRKKPGQSAC
oops
Created by  boogerlad  on April 15, 2020
XLCCD2M74PXBCAR7SHZ5SQTLSATKRQBZRB36TBM27DJO63KFECVAC
fix product_dynamic returning wrong store image due to name aliasing issue
Created by  boogerlad  on April 15, 2020
R5FH2FKM3UQ4ICTTHXUVTSHJ6QEBRCP6FZ3PNLHUHCDLR6436IAAC
sort by producer or brand or name, nested level unknown producer last fix sorting for when producer is the brand
Created by  boogerlad  on April 13, 2020
OIJ2CWOJTUKWCO22US3RG2NW7OXIWCLDP3Y72GY55BXYON3BR6ZQC
product_static return flavor for vapes
Created by  boogerlad  on April 11, 2020
3ZEX2CF5H5CYWMMGBQZTC7X2TUKX7WR2RNEXMBQZCXHOVMEDYMPQC
oops duplicate variant ids in get_products because possibly more than one menu_item with that variant_id! (duh)
Created by  boogerlad  on April 11, 2020
D367PKGCUNOUEO7QBPFSP3L2XOYXTRALYL7RMPY7XFO6UHQNFPCAC
fix searching for products with unknown producer
Created by  boogerlad  on April 11, 2020
6LLLHD2T6WZHLCEDV6RGXJHEPPF5EVJNUAPWYEEE3OXXZ6ZG3VWQC
support updating of menu items. also fix deletion(renamed id)
Created by  boogerlad  on April 9, 2020
INVJWVQDQWH57ORSOR72VWASSMDHCXD35QJQ5H7XN67PSERNUIUAC
store and stores boolean for type = 'physical'
Created by  boogerlad  on April 7, 2020
TQZJC7K5WOURWCLEFW3OP2SBWE3IGMCXBBLNVDKAPQS7NEHSLRJAC
support another brand
Created by  boogerlad  on April 7, 2020
HHYWR3CRPHX5HLM4EX6PIKMMRCFPUOBYLO5TVWNNIF2B4EZXPI6AC
oops forgot constraint for nullable quantity (capsules)
Created by  boogerlad  on April 7, 2020
VWBNZRKY3BWQZ2LVNWDIKQFPW2K6VO2F3QUGZEE6J4UHGRXMWVRQC
better default display_name in regards to punctuation and casing by using original name matched with stripped name
Created by  boogerlad  on April 6, 2020
4FPV4JX2TKYDNV7XJPT36N5TRLVKNMEL4EDAUIRKUG3SOBJ3FHSQC
higher precision and accuracy for coordinates. nullable osrm_hint to amortize spatial lookup
Created by  boogerlad  on April 6, 2020
5Y72WB5QDDV3MJ3FC2TODMYYLZ47CLIRAS6WTNYBFVO5KNOGJIHQC
apparently ocs can have more than 32767 of something in stock
Created by  boogerlad  on April 6, 2020
ISAJPUA6C5CV7MWAAV2UO76Q5ZUDA2DV7KZSNCHA6VZQFD663JAAC
reorder product_type enum so that they are naturally grouped by consumption method
Created by  boogerlad  on April 6, 2020
UT6G4EVANUMS7LLFOS5FTYL4SG4UMQG67ORLV4EDMKGNT3TC2E3QC
Revert "Add Server ping" This reverts commit d2516565638c8221c6e79ba84c0c44862bf4bd06.
Created by  boogerlad  on April 3, 2020
GTLHSXOI2SWVOL5H4URY6AHE76FJPF7NP5QPZFTPEYXLXLULB3DAC
Add Server ping
Created by  David Ramsaran  on April 1, 2020
2NYE6VAHRM77GYXTYR6KC4NMZPCNNV3ISYP5UPFFPSXGUWRTH7IQC
support yet another brand
Created by  boogerlad  on March 30, 2020
EL4GGLHFEBQZVJPQLL622XGW3EVMLKOSULFDOGURVID7IQ4K4TTQC
buildfix and avoid name conflict
Created by  boogerlad  on March 29, 2020
Y4CGGXO7OJRSU36XZRIUVTGX73BXSKUY566ZWXIFO3UP7Y6JXXUQC
Add species to strain table and its values. Return species for "strains" endpoint
Created by  boogerlad  on March 29, 2020
Y6HOXJX6YHDL2Y3L53QZFA4LHKXXS6WAG4TZGBKQGMT35VQLAN3QC
oops mixed up description and strain
Created by  boogerlad  on March 26, 2020
HVXAGQL3ODR3M46AQSASGGNFWSLYUNAHDIBN5DS4IGC4FHTT5JMAC
in stock or out of stock filter, similar products query
Created by  boogerlad  on March 26, 2020
NAAQ2HMF7NXGJDRPXATVAGGZWL5MAIQWF4K5S23VFYBPOPZUXJZAC
parameters may be undefined, so unsafe to get type. fix that.
Created by  boogerlad  on March 26, 2020
X4XDT5S7ISHUZAJ4TK2FBEV55NY6CCUVZL2LN7DTBQ7AJCP5P3QAC
remove sleep. it has served its purpose(testing suspense on frontend)
Created by  boogerlad  on March 26, 2020
OLD4IWLIOAF2YM75DMVN6TW6CR3A6PLPBLDN6UJKFRQNGV35OILQC
products filter by type, strain show description in product_static another endpoint to get a list of strains
Created by  boogerlad  on March 24, 2020
PEVQ4WY77RA6HMHM2C4HLJ5YKRLHYCAD7MDIWD6POZTJZMMMBVGAC
wildcard origin accept all, fix image persistence (connection closed unexpectedly)
Created by  kevin  on March 23, 2020
LWG4EVVTDO3IO46PTT5LGO7A2KSFPGZXSRNI7G3ZMXIAZACBB4IQC
rename strain_family to strain, strain to species support new schema move queries to postgres function
Created by  boogerlad  on March 21, 2020
63VXWIHIAKGK7J4VTNRUAG2V32N2QUSWFELB6GD34S54FGRWAPCQC
tweed is not twd. plain packaging has rebranded to twd. fuck marketing
Created by  boogerlad  on March 20, 2020
SD7HZAYZQ3QHYEMP75PXWK33RLCRYJDZUHONXZJLPLX5IWG6KHKQC
add another brand
Created by  boogerlad  on March 20, 2020
AQLHZKORY2MIWVVXDEGJL2QBDKX4RVRGNJ6TI76GY2DYGEK5JHJAC
simplify unique partial index on cart
Created by  boogerlad  on March 18, 2020
PUUFKW5ZJIJBWTMNX46PW4APAYBAYOAKXHSNGBIGRXCD5Z2FBM2QC
swallow errors on ocs with min concentration > max concentration
Created by  boogerlad  on March 18, 2020
5IGJZG3VTZ3S5WFBPKQZVO3PNEVHB22KLQNGHXPE6TNIH6GD5YCAC
update to reflect new foreign key naming convention
Created by  boogerlad  on March 18, 2020
AHSZHZ73D7ZYAHFII7WDQHCE45C4UVUGIFWYOR3VYCHOOAYLADTAC
match params to table definition. oops
Created by  boogerlad  on March 18, 2020
QSEGNTGEAE4GCH6VRPHJL2JJI3WFXBDO4VJ2LTEFYHYK4576ZEHAC
clean up gram_equivalency since the fail condition doesn't happen
Created by  boogerlad  on March 18, 2020
BGFJK74YUJLEGVJMDJ77J24BTCO2DEJSKZIP57HTL4CUFIZ2B2QQC
fuckboi ocs fixed concentrations, so some hacks are no longer needed
Created by  boogerlad  on March 18, 2020
EM4IBXC54LPHEZHGW7BXJQ2B7E276KOQX4A5JCCF7F2S4LAZMOEQC
support more brands
Created by  boogerlad  on March 18, 2020
CPA3Q5AQOEU4RWB3F3ZILCYTCHWSEOYXEWBL467UBWUOLGHFZTMAC
compute origins once instead of once per websocket open
Created by  kevin  on March 17, 2020
UXLEHDHRPKDY6DXD2Q64ULMVTPOPMQW6VAOPHG5K5HX24YPGG3MQC
lower case unquoted identifiers to reduce confusion(postgres doesn't differentiate) store online / physical explicit prefix all id columns with TABLENAME_ to make foreign keys in queries more intuitive for new devs and `using` keyword fix a bug where show is nullable(three valued logic is not applicable here!) portions default to 1 instead of null(no such thing as "unknown" number of portions) rename user_account to usr finally figure out a name ('active') for the initial state of a cart instead of null todo: update all the queries... In doing so, might as well move all queries out of js. regarding the highly debated `insert on conflict do nothing returning id`, fuck it. why is doing it in one statement so important? > You could check the row count of the output and repeat the statement if it does not match the row count of the input. May be good enough for the rare case. The point is to start a new query (can be in the same transaction), which will then see the newly committed rows. Or check for missing result rows within the same query and overwrite those with the brute force trick demonstrated in Alextoni's answer. can't emphasize, but instead of doing what "Or" suggests, just do another query. it's not like I've implemented the necessary locks to benefit from a single query anyways. I probably wouldn't want to, since scraping is a long operation and I don't want to ever force update (which will hit triggers). I guess the one benefit of one query method is can be pure sql? but now that I'm embracing plpgsql that's a moot point https://stackoverflow.com/a/42217872 https://dba.stackexchange.com/q/212580/
Created by  boogerlad  on March 16, 2020
5XHBBUBSPTNNPEZZVELCS5AEAKQVHEMLAI2URKBMMBUGWTPARFVQC
allow multiple origins. useful for developing more than one frontend
Created by  kevin  on March 16, 2020
6QCQLOKDENPPQQ4ZIWHSZSBUCO7TDYPMUE4JPIVF7AYQXGL5QRTQC
return inserted menu items' ids so that diffing can track on client side
Created by  boogerlad  on March 11, 2020
OGAHYK56XUYXXLLBRO5BPMBURNE673CQYGX4LBGLF5VWDY572B2AC
when loading menu_items, sort variants from smallest to biggest
Created by  boogerlad  on March 11, 2020
445Y34GSMQIF44IXOLYUL2AYYLVBHVGRP2QO7AJW3S4BP7H4UXDAC
more safe
Created by  boogerlad  on March 9, 2020
WBTHWJJ22XN2QPKFZVIBBQE2QMIHCQFYPBV4QWT7W6JEOU6XAVJAC
first_last_agg polyfill comment out by default
Created by  boogerlad  on March 9, 2020
KFNXH4HCDG4NXN7MZDKOBAHH6EB2JVZCQMBAEEG6G3TENFXNUTWQC
add first_last_agg back since we need it to get the first quantity (don't care which one)
Created by  kevin  on March 9, 2020
R3NNNQ3C6ITL5FMPMEUNRXQIZX2K2LBHWB762N6TBYQVZQAUFR5QC
look mah no units
Created by  kevin  on March 9, 2020
A3FTXJ6OBPF426MSYBNR7IPLUOZFWQ5PMKOIGXM7TV4SX6GJ7T2QC
updating is an important feature duh
Created by  kevin  on March 9, 2020
DESZS4X2JKQ2TKJNTQFT7WTDHQN5SRIJW7U32EKHWXVYGYV73YEQC
dosage should be in g, not mg oops
Created by  boogerlad  on March 9, 2020
IBEKBCAZIEVRFQIMTLM2O7TUULNEEAFH6O7OYWEL6BWGRBJL3CRAC
apparently aphria partnered with dosist for canada
Created by  boogerlad  on March 7, 2020
ITFQ3GLUAQ7I2FRUNIA4MIPNKMIN5YCPUY3IHQCISI57T72KXKAQC
don't do anything with websocket after closed due to origin mismatch. replace display_brand with brand
Created by  kevin  on March 4, 2020
P7PFZMZQ5S7GZRJVYE6ACAIDKVTD6YHOOGBHZ52MBSGAIDDGJTBQC
check name as well as brand for keyword
Created by  kevin  on March 4, 2020
F4SCI3XNC3BZB2V27UYMV2Z6C6IGGEL7IMEKB5MX2UUZSGAIA2LAC
typos and force capsule concentration in name to be one word
Created by  kevin  on March 4, 2020
WUYZYVZXH2IPB3NSMEUWKP7A6PHOWECLGBHGOAN5FFMXPLWIDYNQC
fallback brand parsing, and replace on canonical form - not just original.
Created by  boogerlad  on March 4, 2020
NPLF22U6DFRBKB5LINVRLZTSSY3MMHCLYSLR5WMDSKGNCHPNAEIQC
fuckoff
Created by  boogerlad  on March 4, 2020
ZQ7H4A4SN2OB6ADCZW7JMVIBDTS3AT4SQ2XXQ7I4C43V2JKH6NKAC
kill dead code
Created by  boogerlad  on March 4, 2020
66OZ7Y2BPT5LO56D6M6GVSJMOIGVVTZJMJWAOH7SQWFCBTLC3TQAC
now that we lookup producer and brand through a list we maintain ourselves, update unique indicies to reflect that
Created by  boogerlad  on March 3, 2020
NJ233BBUD2WBHKNEWPO5JWQTECTGR5F43NYTSNOZ5J3K22U5C47QC
new strain families and fix a typo
Created by  boogerlad  on March 3, 2020
SOWY545GNK34CPNCPETJOTSVHIJ42JHGITWSTDINO6EZILHYTWUQC
rename and remove unnecessary file
Created by  boogerlad  on March 3, 2020
OE75DBM36Z3EXJ7XPQVSSBEIT4UR275RP43URXF4OOFSXKEYTA4AC
strain family, brand, producer normalization
Created by  boogerlad  on March 3, 2020
I4MTA4E4GTMWJ4NC42QRWV55JRZ2K2W7SDSH5GAW2N4MIAQWS3DQC
Merge branch 'master' of github.com:boogerlad/lobomj
Created by  kevin  on February 28, 2020
ONZ35S7Q2TZCKB22ZFKJUQIKQUXWY2MIZQAOSC455T3X3ZWQF2DAC
template strings and change single to double quotes for windoze
Created by  kevin  on February 27, 2020
4EEXXPTDSSQXWWMULUFVC4AQB53DSDGJEIZJAUKX3243FCBQA5TQC
forgot to uncomment puppeteer dependency
Created by  kevin  on February 27, 2020
BEPIROVOYHYS77KH7GAHNWZRIWLPN5IV2BYG372YG4R75UHYH7AQC
scraper stub of albertcannabis.org
Created by  kevin  on February 27, 2020
MPLKJQVEPZB7GEWAKZOOIKBKWHTNQX3LLESCQEG4PE3CUHQEYUBAC
recommendation algorithm prevent divide by zero. remove nonsense measurement units
Created by  kevin  on February 25, 2020
YUWSM4FCXGL5DRWUGCN26ADHV27THP74V6HFUR4CDUICVPIGX3QAC
protect against CSWSH
Created by  kevin  on February 25, 2020
SRIPJD5O5RNXAH2EOCTVJRGFSNNC4LDPBB44AE7FPEXGTC66NYTAC
db upgrade strategy
Created by  kevin  on February 25, 2020
5M2F2XVOCKZQGXRZC3AQ5NDFJDZZPU3X6B7ENHHYRPHPNUNBOOOQC
Add new normalization data points to scraper
Created by  David Ramsaran  on February 24, 2020
ATYY4F6DCGJMRQAHBEWP3TU2UNHASO5IW2GFAU6UUQLQGFTNNGRAC
cart WIP
Created by  boogerlad  on February 29, 2020
CPNWTEF4ZZHBAB565BALMX5QO2CR3Q32YUHE3FMWJO3O25DZNU5AC
allow deletion of menu items. new update path WIP to save bandwidth
Created by  boogerlad  on February 26, 2020
WZKS2NSIL7VST55EQ7QEF2YG2X3L2Y6W54AIG463ZRH462QR2NWQC
Update README.md
Created by  boogerlad  on February 21, 2020
GS52J542QU5MGFB2ZMJSQMSD7W4WRGBSX3ZDD4C6EFVUPYGSQ36QC
some links on range aggregation. rename password to passphrase. play around with artificial delay
Created by  boogerlad  on February 16, 2020
MM3HQWNEUZVOGQ3WWBTECBY6F47SN4U43I5UNDOAFWO3R7U5XPBAC
typo
Created by  kevin  on February 10, 2020
SRZ5TOOVHZKN3F2QM2IZHGYMZQW2TEXUUJFOCNPHPISJL7QSEPDAC
another heading
Created by  kevin  on February 10, 2020
Q6SGY4V3UZ4POWFMWTZMNEWMLTWBJTSRAZEMKW5UEKEPZINS5ASAC
dependencies and instructions and permission and newline
Created by  kevin  on February 10, 2020
Y4W4MACPKH3IVO6JIQYGN4V5LR6EM6RPZEJ4RHH6ZBZUDA63AGRQC
update queries to work with new schema and real data
Created by  boogerlad  on February 10, 2020
KRP35NGEHSKKLQP522S7LNZN37U7Z23Q7CDTWQMRKS2NHSA6CKXQC
ocs.ca scraper
Created by  boogerlad  on February 10, 2020
SE6MCCXTIXSGMAH5EL7EPDXIQKV6THCCY2H4OQJJQOHCUQAWE5VQC
url cannot be null for online store
Created by  boogerlad  on February 9, 2020
ZQXOYD7OCQ5DOM7TSCGCJ4RSSREE2XOINAYVJBP37NJKVRAYJZNAC
update schema to be compatible with scraped data
Created by  boogerlad  on February 8, 2020
NBGKNI25T2AKNWDH5Z6U6JDUHLQPNRL6GQFF5VS37OOHONSP4CKQC
revamp constraints for stores(online and physical)
Created by  boogerlad  on February 8, 2020
WA2FN2YR2TDCOLDWCZPYHRHPKJXE7KUB7AFERUCEB3KODVBNCUVQC
oops forgot distinct
Created by  boogerlad  on February 4, 2020
G3LGBTOCLCCN43LO5UQ6EZB6W673RRKL5FMRJUV7BQHQCP7DNZRQC
oops comma. also, fix "store not found" when store doesn't have any menu items
Created by  boogerlad  on February 4, 2020
Y2A2HVX75TL34PXDCUDRCYBAFD6ZI75WB64VYSCTX3KQWQRDBKBQC
https://stackoverflow.com/questions/41482441 don't update if nothing changed
Created by  kevin  on February 3, 2020
2WDAUGOPI2S5H2B6VA3NHUICB4JUJGVD6L5O7VXNXD45SSRDCSFQC
finally finish editing menu_items
Created by  kevin  on February 3, 2020
EDVJECDIUUOSU4TS2DCL25MJDR5RQG7PQVTYEM6R3B4SFGKSX6MAC
persist images for product
Created by  kevin  on February 3, 2020
CFWRFX3QZSXT5VAUZQ6R344R4OAZBPL6VTQACDNOYMHJICP4QALAC
actually persist menu_items
Created by  Kevin Hua  on January 19, 2020
5FCMFAPUTCCO2JILRWLC4PHOSHYFCQNH3D7PKLA267MHVZADOX2AC
send proper data for create_menu_items
Created by  kevin  on January 17, 2020
UCWCMBNLNMCMNJ2QRKZSFABEHKSOO7BWVLLEJCOPJPZ7QZCECQUAC
store hours and tax
Created by  kevin  on January 17, 2020
TBTYGTE3JUKOX6GDBR7AMMMV4RYCUFAK5N3ATSVCLCGESBSMJUHQC
Update README.md
Created by  boogerlad  on January 17, 2020
NMMR2KTK6PLGLUPKJQUUIA4KKMTKBOPNHPYD3HRHIGUV6ZYANYWQC
Add files via upload
Created by  boogerlad  on January 17, 2020
I5DBT6B7XMIWREH2MI6MTUTYZUJ27R4FJKAZGJGDRX66AA46GVPAC
Update README.md
Created by  boogerlad  on January 17, 2020
YHCZCZJ2VJPIBOSIHZIBRHITOU47MOA52LYIIFGV7YIPP7ZC4XCQC
Update README.md
Created by  boogerlad  on January 17, 2020
QHLBAGVYOB6KEAHAJMUTN236VSPFNOYAIKAPQJPF75YBBUXLU5PQC
Create README.md
Created by  boogerlad  on January 17, 2020
T2BEPW7GP45VJBMXIPJ2RX6W2FNULCLZWLSRW2LFF43WWGUM24DQC
menu items and join agg for products and variants
Created by  kevin  on January 17, 2020
7CC5KHF4RWFFO4DG2DLKPIQDTOBODUPKQ4KZZDRAQQUFVDNC5MRQC
variant
Created by  kevin  on January 17, 2020
54TMOAIBD5UBRSWPGW45YZO4VMVKSP7YYKIQ7H4LWSVCN2E3QA4QC
move gapi key to dotenv. add strain_family lookup table. create product
Created by  kevin  on January 16, 2020
EGNRBQUMOZHAF5B7KCMTAPMB4H3USK4MK33Q6T5V26D6HOJNW6LQC
stub out list all stores and list a specific store
Created by  kevin  on January 16, 2020
DCYC55MAVFDM43TEEUMAHLPOHNQ3EJ5PEVCA7H6ZTKNQHJZK7XJAC
create store WIP
Created by  kevin  on January 15, 2020
4WREYORZT3SWUXADWHSS6B4PQSP3QSLH77CGNKRH6IRKUMX4TARAC
comment and publish new user TEST
Created by  kevin  on January 14, 2020
OQJOHZCSRMKF26K3QJPBDH4BH26GW2NIYJARTTMGLJ3WJWWUQVRAC
comment on multi login
Created by  kevin  on January 13, 2020
Q4J4JHWWARLZQBYRRR33FRSFZK5BQMWGBGYQ22MLLVUELI7FYHRQC
some comments
Created by  kevin  on January 13, 2020
WYEWZOEIGDF3SIG6LHQVOKHI6MTDEYMRWZFGDFCEH27EDL2H4BVQC
user create, login, remember me. todo: logout, list all users, update profile, update user
Created by  kevin  on January 10, 2020
WYTMZJFYVKHR4QH7AV5JUNWXT6NAC5NNQNPZCQSDI6LGI7DVXFYAC
dependencies
Created by  kevin  on January 9, 2020
VO5G3FF3NDOKCIF2OU7G257R3XIPTFDCAMDTOVKHKOB5Z3I55KDQC
sql schema
Created by  kevin  on January 9, 2020
E4HFJ4L4PAGV7R7EXVG2B2CWDGGW7XWU4D37VURZ66HZ3ILHCFUAC