cmd/web/main.go   A
last analyzed

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 26
dl 0
loc 49
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A main.main 0 26 3
1
package main
2
3
import (
4
	"fmt"
5
	"log"
6
	"os"
7
8
	"github.com/rfinochi/golang-workshop-todo/pkg/common"
9
)
10
11
// @title To-Do Sample API
12
// @version 1.0
13
// @description Sample To-Do API written in Golang for Go Programming Language Workshop.
14
15
// @contact.name Go Programming Language Workshop
16
// @contact.url https://golang-workshop.io
17
// @contact.email [email protected]
18
19
// @license.name MIT License
20
// @license.url https://opensource.org/licenses/mit-license.php
21
22
// @host todo.golang-workshop.io
23
// @BasePath /api
24
func main() {
25
	app := &application{
26
		infoLog:  log.New(os.Stdout, "INFO\t", log.Ldate|log.Ltime),
27
		errorLog: log.New(os.Stderr, "ERROR\t", log.Ldate|log.Ltime|log.Lshortfile),
28
	}
29
	app.initModels()
30
	app.initRouter()
31
	app.addAPIRoutes()
32
	app.addSwaggerRoutes()
33
34
	app.infoLog.Printf("Env %s '%s'", common.PortEnvVarName, os.Getenv(common.PortEnvVarName))
35
	app.infoLog.Printf("Env %s '%s'", common.PortEnvVarName2, os.Getenv(common.PortEnvVarName2))
36
	app.infoLog.Printf("Env %s '%s'", common.APITokenEnvVarName, os.Getenv(common.APITokenEnvVarName))
37
	app.infoLog.Printf("Env %s '%s'", common.RepositoryMongoURIEnvVarName, os.Getenv(common.RepositoryMongoURIEnvVarName))
38
	app.infoLog.Printf("Env %s '%s'", common.APITokenEnvVarName, os.Getenv(common.APITokenEnvVarName))
39
40
	port := os.Getenv(common.PortEnvVarName)
41
	if port == "" {
42
		port = os.Getenv(common.PortEnvVarName2)
43
		if port == "" {
44
			port = common.PortDefault
45
			app.infoLog.Printf("Starting server on port %s", port)
46
		}
47
	}
48
49
	app.router.Run(fmt.Sprintf(":%s", port))
50
}
51