Skip to content

Commit b0f6784

Browse files
committed
Make code client only
1 parent c2b5081 commit b0f6784

File tree

2 files changed

+73
-27
lines changed

2 files changed

+73
-27
lines changed

api/cmd/experiments/main.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package main
33
import (
44
"bytes"
55
"context"
6+
"encoding/csv"
67
"encoding/json"
8+
"errors"
79
"fmt"
810
"io"
911
"log"
@@ -13,6 +15,10 @@ import (
1315
"sync"
1416
"time"
1517

18+
"firebase.google.com/go/auth"
19+
"github.com/NdoleStudio/httpsms/pkg/telemetry"
20+
"google.golang.org/api/iterator"
21+
1622
"github.com/palantir/stacktrace"
1723

1824
"github.com/NdoleStudio/httpsms/pkg/di"
@@ -33,9 +39,47 @@ func main() {
3339
container := di.NewLiteContainer()
3440
logger := container.Logger()
3541

42+
authClient := container.FirebaseAuthClient()
43+
44+
var users []*auth.ExportedUserRecord
45+
iter := authClient.Users(context.Background(), "")
46+
for {
47+
user, err := iter.Next()
48+
if errors.Is(err, iterator.Done) {
49+
break
50+
}
51+
if err != nil {
52+
logger.Fatal(err)
53+
}
54+
users = append(users, user)
55+
}
56+
57+
logger.Info(fmt.Sprintf("fetched %d users", len(users)))
58+
exportUsers(logger, users)
59+
3660
logger.Info("Starting experiments")
3761
}
3862

63+
func exportUsers(logger telemetry.Logger, users []*auth.ExportedUserRecord) {
64+
records := [][]string{
65+
{"First name", "Email address", "External ID"},
66+
}
67+
68+
for _, user := range users {
69+
records = append(records, []string{user.UserInfo.DisplayName, user.UserInfo.Email, user.UserInfo.UID})
70+
}
71+
72+
file, err := os.Create("result.csv")
73+
if err != nil {
74+
logger.Fatal(stacktrace.Propagate(err, "cannot create file"))
75+
}
76+
77+
w := csv.NewWriter(file)
78+
if err = w.WriteAll(records); err != nil {
79+
logger.Fatal(stacktrace.Propagate(err, "cannot write csv"))
80+
}
81+
}
82+
3983
func chunkBy[T any](items []T, chunkSize int) (chunks [][]T) {
4084
for chunkSize < len(items) {
4185
items, chunks = items[chunkSize:], append(chunks, items[0:chunkSize:chunkSize])

web/pages/index.vue

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,35 @@
33
<v-container>
44
<v-row class="mt-16 pt-8 mb-n8">
55
<v-col>
6-
<v-alert
7-
text
8-
:icon="$vuetify.breakpoint.mdAndUp ? mdiSale : undefined"
9-
:prominent="$vuetify.breakpoint.mdAndUp"
10-
color="success"
11-
>
12-
<v-row align="center">
13-
<v-col class="grow">
14-
<p class="text-h6 mb-0">Black Friday Deal</p>
15-
<p class="mb-0">
16-
Get <b>40%</b> off all yearly plans on httpSMS until on
17-
December 2<sup>nd</sup> by using the discount code
18-
<b>BF2024</b> at checkout
19-
</p>
20-
<v-btn
21-
v-if="!$vuetify.breakpoint.mdAndUp"
22-
to="/billing"
23-
block
24-
color="pink"
25-
>Upgrade Now</v-btn
26-
>
27-
</v-col>
28-
<v-col v-if="$vuetify.breakpoint.mdAndUp" class="shrink">
29-
<v-btn color="pink" to="/billing">Upgrade Now</v-btn>
30-
</v-col>
31-
</v-row>
32-
</v-alert>
6+
<client-only>
7+
<v-alert
8+
text
9+
:icon="$vuetify.breakpoint.mdAndUp ? mdiSale : undefined"
10+
:prominent="$vuetify.breakpoint.mdAndUp"
11+
color="success"
12+
>
13+
<v-row align="center">
14+
<v-col class="grow">
15+
<p class="text-h6 mb-0">Black Friday Deal</p>
16+
<p class="mb-0">
17+
Get <b>40%</b> off all yearly plans on httpSMS until on
18+
December 2<sup>nd</sup> by using the discount code
19+
<b>BF2024</b> at checkout
20+
</p>
21+
<v-btn
22+
v-if="!$vuetify.breakpoint.mdAndUp"
23+
to="/billing"
24+
block
25+
color="pink"
26+
>Upgrade Now</v-btn
27+
>
28+
</v-col>
29+
<v-col v-if="$vuetify.breakpoint.mdAndUp" class="shrink">
30+
<v-btn color="pink" to="/billing">Upgrade Now</v-btn>
31+
</v-col>
32+
</v-row>
33+
</v-alert>
34+
</client-only>
3335
</v-col>
3436
</v-row>
3537
<v-row :class="{ 'pb-16 pt-0': $vuetify.breakpoint.lgAndUp }">

0 commit comments

Comments
 (0)