Skip to content

Commit 122d68c

Browse files
Merge pull request #2 from rog-golang-buddies/initial
Initial
2 parents ee2b3fd + f40c07c commit 122d68c

File tree

12 files changed

+588
-4
lines changed

12 files changed

+588
-4
lines changed

Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,8 @@ fmt:
3838
.PHONY: build
3939
build:
4040
go build -ldflags="-w -s" -o bin/app ./...
41+
42+
## run: run locally
43+
.PHONY: run
44+
run:
45+
go run ./...

cmd/main.go

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,28 @@
11
package main
22

3-
import "fmt"
3+
import (
4+
"log"
5+
6+
"github.com/rog-golang-buddies/dev-buddy/internal/pkg/discordCommandInterface"
7+
"github.com/rog-golang-buddies/dev-buddy/internal/pkg/utils"
8+
)
49

510
func main() {
6-
// Feel free to delete this file.
7-
fmt.Println("Hello Gophers")
11+
ctx, err := utils.SetContext()
12+
if err != nil {
13+
log.Fatal(err)
14+
}
15+
// test
16+
// githubClient, _ := githubBroker.CreateBroker(ctx)
17+
// fmt.Print(githubBroker.CreateOrganizationInvite(ctx, githubClient, "SupornoChaudhury"))
18+
19+
// calling the initialize server for discord
20+
s, err := discordCommandInterface.InitializeDiscordServer(ctx)
21+
if err != nil {
22+
log.Fatal(err)
23+
}
24+
25+
if err := discordCommandInterface.StartListening(s); err != nil {
26+
log.Fatal(err)
27+
}
828
}

go.mod

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1-
module github.com/rog-golang-buddies
1+
module github.com/rog-golang-buddies/dev-buddy
22

33
go 1.18
4+
5+
require (
6+
github.com/bwmarrin/discordgo v0.25.0 // indirect
7+
github.com/golang/protobuf v1.5.2 // indirect
8+
github.com/google/go-github v17.0.0+incompatible // indirect
9+
github.com/google/go-querystring v1.1.0 // indirect
10+
github.com/google/martian v2.1.0+incompatible // indirect
11+
github.com/google/martian/v3 v3.3.2 // indirect
12+
github.com/gorilla/websocket v1.4.2 // indirect
13+
github.com/sethvargo/go-envconfig v0.8.0 // indirect
14+
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b // indirect
15+
golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e // indirect
16+
golang.org/x/oauth2 v0.0.0-20220722155238-128564f6959c // indirect
17+
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect
18+
google.golang.org/appengine v1.6.7 // indirect
19+
google.golang.org/protobuf v1.28.0 // indirect
20+
)

go.sum

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
2+
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
3+
github.com/bwmarrin/discordgo v0.25.0 h1:NXhdfHRNxtwso6FPdzW2i3uBvvU7UIQTghmV2T4nqAs=
4+
github.com/bwmarrin/discordgo v0.25.0/go.mod h1:NJZpH+1AfhIcyQsPeuBKsUtYrRnjkyu0kIVMCHkZtRY=
5+
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
6+
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
7+
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
8+
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
9+
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
10+
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
11+
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
12+
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
13+
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
14+
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
15+
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
16+
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
17+
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
18+
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
19+
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
20+
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
21+
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
22+
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
23+
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
24+
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
25+
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
26+
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
27+
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
28+
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
29+
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
30+
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
31+
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
32+
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
33+
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
34+
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
35+
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
36+
github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY=
37+
github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
38+
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
39+
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
40+
github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
41+
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
42+
github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw=
43+
github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
44+
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
45+
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
46+
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
47+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
48+
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
49+
github.com/sethvargo/go-envconfig v0.8.0 h1:AcmdAewSFAc7pQ1Ghz+vhZkilUtxX559QlDuLLiSkdI=
50+
github.com/sethvargo/go-envconfig v0.8.0/go.mod h1:Iz1Gy1Sf3T64TQlJSvee81qDhf7YIlt8GMUX6yyNFs0=
51+
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
52+
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
53+
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
54+
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b h1:7mWr3k41Qtv8XlltBkDkl8LoP3mpSgBW8BUoxtEdbXg=
55+
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
56+
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
57+
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
58+
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
59+
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
60+
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
61+
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
62+
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
63+
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
64+
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
65+
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
66+
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
67+
golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e h1:TsQ7F31D3bUCLeqPT0u+yjp1guoArKaNKmCr22PYgTQ=
68+
golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
69+
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
70+
golang.org/x/oauth2 v0.0.0-20220722155238-128564f6959c h1:q3gFqPqH7NVofKo3c3yETAP//pPI+G5mvB7qqj1Y5kY=
71+
golang.org/x/oauth2 v0.0.0-20220722155238-128564f6959c/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
72+
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
73+
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
74+
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
75+
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
76+
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
77+
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw=
78+
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
79+
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
80+
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
81+
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
82+
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
83+
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
84+
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
85+
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
86+
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
87+
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
88+
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
89+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
90+
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
91+
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
92+
google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
93+
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
94+
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
95+
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
96+
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
97+
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
98+
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
99+
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
100+
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
101+
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
102+
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
103+
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
104+
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
105+
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
106+
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
107+
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
108+
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
109+
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
110+
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
111+
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
112+
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
113+
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
114+
google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=
115+
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
116+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
117+
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
118+
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
119+
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
package discordBroker
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"math"
7+
"time"
8+
9+
"github.com/bwmarrin/discordgo"
10+
"github.com/rog-golang-buddies/dev-buddy/internal/pkg/models"
11+
)
12+
13+
func CreateMeeting(ctx context.Context, startDate string, endDate string) (models.DiscordResponses, error) {
14+
startDateTime, err := time.Parse("2006-01-02", startDate) //YYYY-MM-DD
15+
if err != nil {
16+
return models.DiscordResponses{}, fmt.Errorf("failed converting startDate: %v", err)
17+
}
18+
19+
endDateTime, err := time.Parse("2006-01-02", endDate)
20+
if err != nil {
21+
return models.DiscordResponses{}, fmt.Errorf("failed converting endDate: %v", err)
22+
}
23+
24+
days := endDateTime.Sub(startDateTime).Hours() / 24
25+
daysInt := int(math.Round(days))
26+
var responseMessages []discordgo.Message
27+
initialMessage := discordgo.Message{
28+
Content: "Please react with your availability during the following days. Try to react with as many emojis as possible.",
29+
}
30+
responseMessages = append(responseMessages, initialMessage)
31+
for i := 0; i < daysInt; i++ {
32+
displayDateTime := startDateTime.AddDate(0, 0, i)
33+
dayName := displayDateTime.Weekday()
34+
35+
formattedDisplayDate := displayDateTime.Format("2006-01-02")
36+
37+
firstReactions := createFirstHalfReactionsList()
38+
messageReturnFirstHalf := discordgo.Message{
39+
Content: "First half of " + dayName.String() + "\ndate(YYYY-MM-DD): " + formattedDisplayDate + "\nAll times are in GMT",
40+
// TODO: start from here
41+
Reactions: firstReactions,
42+
}
43+
44+
secondReactions := createSecondHalfReactionsList()
45+
messageReturnSecondHalf := discordgo.Message{
46+
Content: "Second half of " + dayName.String() + "\ndate(YYYY-MM-DD): " + formattedDisplayDate + "\nAll times are in GMT",
47+
Reactions: secondReactions,
48+
}
49+
50+
responseMessages = append(responseMessages, messageReturnFirstHalf)
51+
responseMessages = append(responseMessages, messageReturnSecondHalf)
52+
}
53+
response := models.DiscordResponses{
54+
Responses: responseMessages,
55+
}
56+
return response, nil
57+
}
58+
59+
func createFirstHalfReactionsList() []*discordgo.MessageReactions {
60+
emojiList := []string{":12to1am:1001391717376860211", ":1to2am:1001391662674739271", ":2to3am:1001391667061989376", ":3to4am:1001391671914811422", ":4to5am:1001391676180414644", ":5to6am:1001391680747995246",
61+
":6to7am:1001391686104133633", ":7to8am:1001391690822729739", "8to9am:1001391696279502859", ":9to10am:1001391700972929034",
62+
":10to11am:1001391706522009611", ":11to12noon:1001391714826735686"}
63+
var response []*discordgo.MessageReactions
64+
for _, emojiName := range emojiList {
65+
discordEmoji := discordgo.Emoji{
66+
Name: emojiName,
67+
}
68+
69+
discordReaction := discordgo.MessageReactions{
70+
Emoji: &discordEmoji,
71+
}
72+
73+
response = append(response, &discordReaction)
74+
}
75+
return response
76+
}
77+
78+
func createSecondHalfReactionsList() []*discordgo.MessageReactions {
79+
emojiList := []string{":1to2pm:1001391664805462046", ":2to3pm:1001391669574373386", ":3to4pm:1001391673982599189",
80+
":4to5pm:1001391678688600144", ":5to6pm:1001391683054862386", ":6to7pm:1001391688641675364", ":7to8pm:1001391693322530847",
81+
":8to9pm:1001391698594762774", ":9to10pm:1001391703632125952", ":10to11pm:1001391709130862694", ":11to12mid:1001391712108822549"}
82+
var response []*discordgo.MessageReactions
83+
for _, emojiName := range emojiList {
84+
discordEmoji := discordgo.Emoji{
85+
Name: emojiName,
86+
}
87+
88+
discordReaction := discordgo.MessageReactions{
89+
Emoji: &discordEmoji,
90+
}
91+
92+
response = append(response, &discordReaction)
93+
}
94+
return response
95+
}
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package githubBroker
2+
3+
import (
4+
"context"
5+
"fmt"
6+
7+
"github.com/google/go-github/github"
8+
"github.com/rog-golang-buddies/dev-buddy/internal/pkg/constants"
9+
"golang.org/x/oauth2"
10+
)
11+
12+
func CreateBroker(ctx context.Context) (*github.Client, error) {
13+
// Get PAT from ctx.
14+
personalAccessToken := ctx.Value(constants.GHPATHeader)
15+
16+
// Set a Static Token Source and create Client.
17+
ts := oauth2.StaticTokenSource(
18+
&oauth2.Token{AccessToken: fmt.Sprint(personalAccessToken)},
19+
)
20+
tc := oauth2.NewClient(ctx, ts)
21+
22+
// create github client.
23+
client := github.NewClient(tc)
24+
25+
return client, nil
26+
}
27+
28+
func GetAllIssueNames(ctx context.Context, client *github.Client, repositoryName string) (string, error) {
29+
// create search options
30+
opts := &github.SearchOptions{Sort: "created", Order: "asc"}
31+
32+
// get the githubOwner
33+
githubOwner := fmt.Sprint(ctx.Value(constants.OwnerKey))
34+
35+
// create search string
36+
// docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests
37+
searchString := "is:issue is:open repo:" + githubOwner + "/" + repositoryName
38+
39+
// get the github issues
40+
githubIssues, _, err := client.Search.Issues(ctx, searchString, opts)
41+
if err != nil {
42+
return "", err
43+
}
44+
45+
issuesList := githubIssues.Issues
46+
47+
var returnIssuesList string
48+
49+
// add all the issues with formatting to be returned
50+
for position, issue := range issuesList {
51+
returnIssuesList += fmt.Sprintln(position, *issue.Title)
52+
}
53+
return returnIssuesList, nil
54+
}
55+
56+
func CreateOrganizationInvite(ctx context.Context, client *github.Client, username string) (string, error) {
57+
// var response string
58+
// create search options
59+
opts := &github.SearchOptions{Sort: "created", Order: "asc"}
60+
61+
githubUsername, _, err := client.Search.Users(ctx, username, opts)
62+
if err != nil {
63+
return "", err
64+
}
65+
githubUser := githubUsername.Users
66+
67+
// if len(githubUser) > 1 {
68+
// return "more than one user found, please recheck", nil
69+
// }
70+
githubUserId := githubUser[0].ID
71+
teamIDList := []int64{6379585}
72+
roleString := "direct_member"
73+
inviteOpts := github.CreateOrgInvitationOptions{
74+
InviteeID: githubUserId,
75+
Role: &roleString,
76+
TeamID: teamIDList,
77+
}
78+
79+
organizationName := fmt.Sprint(ctx.Value(constants.OwnerKey))
80+
invitation, _, err := client.Organizations.CreateOrgInvitation(ctx, organizationName, &inviteOpts)
81+
if err != nil {
82+
return "", err
83+
}
84+
response := "Invite created for the user " + username + " at " + invitation.CreatedAt.String()
85+
return response, nil
86+
}

0 commit comments

Comments
 (0)