boilerplate for using aiteung package. Please init your apps, and replace package import with the name iteung/... in the main.go, controller.go dan url.go
go mod init yourpackageurl
go mod tidy
main.go file
package main
import (
"log"
"github.com/aiteung/musik"
"github.com/gofiber/fiber/v2/middleware/cors"
"iteung/config"
"github.com/whatsauth/whatsauth"
"github.com/gofiber/fiber/v2"
"iteung/url"
)
func main() {
go whatsauth.RunHub() //run for whatsauth websocket
site := fiber.New()
site.Use(cors.New(config.Cors))
url.Web(site)
log.Fatal(site.Listen(musik.Dangdut()))
}
url.go file inside url folder, act as package
package url
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/websocket/v2"
"iteung/controller"
)
func Web(page *fiber.App) {
page.Post("/api/whatsauth/request", controller.PostWhatsAuthRequest) //API from user whatsapp message from iteung gowa
page.Get("/ws/whatsauth/qr", websocket.New(controller.WsWhatsAuthQR)) //websocket whatsauth
}
controller.go inside controller folder act as package
package controller
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/websocket/v2"
"github.com/whatsauth/whatsauth"
"iteung/config"
)
func WsWhatsAuthQR(c *websocket.Conn) {
whatsauth.RunSocket(c, config.PublicKey, config.Usertables[:], config.Ulbimariaconn)
}
func PostWhatsAuthRequest(c *fiber.Ctx) error {
if string(c.Request().Host()) == config.Internalhost {
var req whatsauth.WhatsauthRequest
err := c.BodyParser(&req)
if err != nil {
return err
}
ntfbtn := whatsauth.RunModule(req, config.PrivateKey, config.Usertables[:], config.Ulbimariaconn)
return c.JSON(ntfbtn)
} else {
var ws whatsauth.WhatsauthStatus
ws.Status = string(c.Request().Host())
return c.JSON(ws)
}
}
cors.go
package config
import (
"os"
"strings"
"github.com/gofiber/fiber/v2/middleware/cors"
)
var origins = []string{
"https://auth.ulbi.ac.id",
"https://sip.ulbi.ac.id",
"https://euis.ulbi.ac.id",
"https://home.ulbi.ac.id",
"https://alpha.ulbi.ac.id",
"https://dias.ulbi.ac.id",
"https://iteung.ulbi.ac.id",
"https://whatsauth.github.io",
}
var Internalhost string = os.Getenv("INTERNALHOST") + ":" + os.Getenv("PORT")
var Cors = cors.Config{
AllowOrigins: strings.Join(origins[:], ","),
AllowHeaders: "Origin",
ExposeHeaders: "Content-Length",
AllowCredentials: true,
}
token.go
package config
import "os"
var PublicKey string = os.Getenv("PUBLICKEY")
var PrivateKey string = os.Getenv("PRIVATEKEY")
db.go
package config
import (
"os"
"github.com/aiteung/atdb"
"github.com/whatsauth/whatsauth"
)
var IteungIPAddress string = os.Getenv("ITEUNGBEV1")
var MongoString string = os.Getenv("MONGOSTRING")
var MariaStringAkademik string = os.Getenv("MARIASTRINGAKADEMIK")
var DBUlbimariainfo = atdb.DBInfo{
DBString: MariaStringAkademik,
DBName: "db_ulbi",
}
var Ulbimariaconn = atdb.MariaConnect(DBUlbimariainfo)
var Usertables = [4]whatsauth.LoginInfo{mhs, dosen, user, user1}
var mhs = whatsauth.LoginInfo{
Userid: "MhswID",
Password: "Password",
Phone: "Telepon",
Username: "Login",
Uuid: "simak_mst_mahasiswa",
Login: "2md5",
}
var dosen = whatsauth.LoginInfo{
Userid: "NIDN",
Password: "Password",
Phone: "Handphone",
Username: "Login",
Uuid: "simak_mst_dosen",
Login: "2md5",
}
var user = whatsauth.LoginInfo{
Userid: "user_id",
Password: "user_password",
Phone: "phone",
Username: "user_name",
Uuid: "simak_besan_users",
Login: "2md5",
}
var user1 = whatsauth.LoginInfo{
Userid: "user_id",
Password: "user_password",
Phone: "user_phone",
Username: "user_name",
Uuid: "besan_users",
Login: "2md5",
}