Skip to content

Instantly share code, notes, and snippets.

View kanzitelli's full-sized avatar
💭
I may be slow to respond.

Batyr kanzitelli

💭
I may be slow to respond.
View GitHub Profile
@kanzitelli
kanzitelli / Dockerfile
Created September 12, 2019 16:48
Dockerfile for Golang projects
ARG GO_VERSION=1.12
FROM golang:${GO_VERSION}-alpine AS builder
RUN apk add --no-cache ca-certificates git tzdata
WORKDIR /src
COPY ./go.mod ./go.sum ./
RUN go mod download
@kanzitelli
kanzitelli / news.go
Created September 11, 2019 15:29
Controllers/News.go. #2
package controllers
import (
"net/http"
"strconv"
"github.com/gin-gonic/gin"
)
// NewsController <controller>
@kanzitelli
kanzitelli / crawler.go
Created September 11, 2019 15:25
Crawler/Crawler.go. #2
package crawler
import (
"time"
)
// NewsCrawler <interface>
// is used to describe news crawler class instance
type NewsCrawler interface {
Run() []models.News
@kanzitelli
kanzitelli / server.go
Created September 11, 2019 15:20
Server/Server.go. #2
package server
import (
)
// Init <function>
// is used to initialize server and all the corresponding services such as DB, Utils, Workers
func Init() {
// utils
@kanzitelli
kanzitelli / news.go
Created September 11, 2019 15:02
DB/News.go. #1
package db
import (
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo/options"
)
const (
newsCollection = "news"
)
@kanzitelli
kanzitelli / newsSources.go
Created September 11, 2019 14:41
DB/NewsSource.go & DB/NewsTypes.go. #1
package db
import (
"go.mongodb.org/mongo-driver/bson"
)
const (
newsSourcesCollection = "news_sources"
)
@kanzitelli
kanzitelli / seeds.go
Created September 11, 2019 14:33
DB/seeds.go
package db
// FillSeedsInformation <function>
// is used to fill information that needed before usage of news endpoint
func (s Service) FillSeedsInformation() {
s.fillNewsSources()
s.fillNewsTypes()
}
@kanzitelli
kanzitelli / service.go
Created September 11, 2019 13:37
DB/Service.go. #1
package db
import (
"context"
"fmt"
"time"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/mongo/readpref"
@kanzitelli
kanzitelli / crawler.go
Created September 7, 2019 22:49
Crawler/Crawler.go. #1
package crawler
import (
"time"
)
// NewsCrawler <interface>
// is used to describe news crawler class instance
type NewsCrawler interface {
Run() []models.News
@kanzitelli
kanzitelli / hash.go
Created September 7, 2019 22:26
Utils/Hash.go. #1
package utils
import (
"crypto/sha1"
"encoding/hex"
)
// MakeHash <function>
// is used to create hash from string
func MakeHash(s string) string {