Immanuel Onyeka
eb91253e97
Fix errors
6 месяцев назад
Immanuel Onyeka
33e71edc8e
Fix Stripe webhook errors
7 месяцев назад
Immanuel Onyeka
7b325342ea
Fix type error
7 месяцев назад
Immanuel Onyeka
9f31c024f5
Add code for users to unsubscribe from settings
Also embeds /assets, /migrations, and views/ directories in Go binary to
make deployment simpler.
7 месяцев назад
Immanuel Onyeka
bb7b9fdbe0
Prompt user before unsubscribing
7 месяцев назад
Immanuel Onyeka
1079af08d7
Allow newsletter subscription changes
Users can change their newsletter subscription status in the settings
view.
7 месяцев назад
Immanuel Onyeka
171b508dee
Had billing prompt users with subscribed status
Hiding based on user status and not only billing details allows easier
testing with fake users.
7 месяцев назад
Immanuel Onyeka
9cc4464d48
Fix registration form errors
7 месяцев назад
Immanuel Onyeka
586533ec5c
Add page for free trial
7 месяцев назад
Immanuel Onyeka
1199bc6d08
Show billing prompt if there are payment errors
automatically prompts for a new card if past payments were
unsuccessful. Does not actually disable API access.
8 месяцев назад
Immanuel Onyeka
05caf69330
Fix style errors caused by Grav move
8 месяцев назад
Immanuel Onyeka
809f663d5e
Fix SMTP and Stripe errors
8 месяцев назад
Immanuel Onyeka
d28d60e729
Delete files unused by view
10 месяцев назад
Immanuel Onyeka
298d031ef2
Resolve usage conflict for 'access' attribute
'access' is already used by grav to set permissions for admin routes and
internal accounts. 'skouter' should be used instead.
10 месяцев назад
Immanuel Onyeka
5a0b0f82b3
Remove frontend rendering logic from Go backend
Grav will be used to route and display all frontend pages instead of Go
to make pages easily modifiable and consistent with blogging CMS.
10 месяцев назад
Immanuel Onyeka
46337043d0
Show only appropriate pages to guests in navbar
nav_loop is seperated into three different loops for general routes,
guests, and authenticated users which will be called 'members'.
10 месяцев назад
Immanuel Onyeka
a4b74eb6e1
Pass user current user to grav in header
A seperate header is used instead of relying only on current cookie
because the current cookie is difficult to modify before being
forwarded, and would make removing invalid cookies in responses
complicated.
10 месяцев назад
Immanuel Onyeka
3c7d506917
Store login state in reverse proxy URL
It's easier and less complex than writing a Grav plugin to make backend
requests each time a page is loaded.
10 месяцев назад
Immanuel Onyeka
9e0435121b
Refresh token on every request
10 месяцев назад
Immanuel Onyeka
5f853256e1
Send verification email after registration
10 месяцев назад
Immanuel Onyeka
18e5086e89
Add endpoints trial subscription and verification
Generate verification tokens and sendout SMTP relay from endpoint.
Authentication values rely on environment variables. The new trial
subscription endpoint copies the existing one but adds the trial days
parameter.
10 месяцев назад
Immanuel Onyeka
1ea00f2b0e
Add procedures for email verification
11 месяцев назад
Immanuel Onyeka
6a412e5a47
Create separate functions for subscription hooks
Creating separate endpoints for each webhook simplifies value checking for
event.Type and HookKeys while being easy to test for errors.
11 месяцев назад
Immanuel Onyeka
eb33ae45e7
Add subscription update endpoints to router
11 месяцев назад
Immanuel Onyeka
7e919e1a41
Add subscription creation webhook for Stripe
11 месяцев назад
Immanuel Onyeka
10b88f12bc
Fix user retrieval errors
Empty branch IDs and missing payment information caused network errors
and a missing billing component.
11 месяцев назад
Immanuel Onyeka
5627960ad4
Automatically set token cookie after login
11 месяцев назад
Immanuel Onyeka
4511f2cb39
Setup invoice.paid webhook handler
11 месяцев назад
Immanuel Onyeka
53ebad02ae
Store price ID in subscriptions
11 месяцев назад
Immanuel Onyeka
0ce1a066cc
Process and complete Stripe payments
1 год назад
Immanuel Onyeka
f2dd73def0
Return payment intent for new or existing subs
1 год назад
Immanuel Onyeka
adb49143ee
Setup subscription endpoint
1 год назад
Immanuel Onyeka
51e46a2ce6
Setup subscription SQL table
Includes the associated Go functions for inserting and selecting given a
specific user ID or subscription ID. Also adds required HTML tags and
HTTP queries for subscription process during user registration.
1 год назад
Immanuel Onyeka
d42030bd18
Remove extra query after new user insertion
1 год назад
Immanuel Onyeka
784e9099ee
Run go `go fmt` to correct spacing.
1 год назад
Immanuel Onyeka
846034c11a
Display registration errors to user
1 год назад
Immanuel Onyeka
3152ff716d
Access main Grav site through Go reverse proxy
To make requests to Go API endpoints for registration from a PHP page,
there needs to be local routing between the two servers. This method
avoids needing Apache installed seperately for development builds while
allowing it to still be used in production if necessary.
1 год назад
Immanuel Onyeka
826a356432
Prevent new users from being administrators
Secures the user registration endpoint.
1 год назад
Immanuel Onyeka
2eafce7af8
Style registration components
1 год назад
Immanuel Onyeka
f03c6cdaaf
Create account registration fields
1 год назад
Immanuel Onyeka
cbe0f3b8a7
Setup webpack entry point for vue components
A new template file needed to be created to allow custom javascript in
a grav page. The JS file will mount the transpiled Vue app.
1 год назад
Immanuel Onyeka
de18ccb4d0
Style home page
1 год назад
Immanuel Onyeka
858c572cda
Create basic site layout
1 год назад
Immanuel Onyeka
8b3448a360
Setup grav
Store only files relevant to the project by tracking only the user/
directory.
1 год назад
Immanuel Onyeka
ea8b32df2e
Correct letterhead rendering when avatar is missing
1 год назад
Immanuel Onyeka
bb1f7eaa70
Delete templates with remove button in view
1 год назад
Immanuel Onyeka
94390b1aa3
List and display template details in view
1 год назад
Immanuel Onyeka
48fa487fea
Handle missing avatar and letterhead in PDF
1 год назад
Immanuel Onyeka
27de7ea416
Allow users to delete saved estimates
1 год назад
Immanuel Onyeka
0313364069
Use images in PDF only if the user has uploaded them
1 год назад