be_p3

module
v0.3.200 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2023 License: MIT

README

Backend Mytodolist

Repositori ini adalah Backend dari aplikasi Mytodolist yang ditulis dengan bahasa Go.

model

  • type.go
    1. Import Standard Library
      • time adalah package dari Go yang digunakan untuk memanipulasi dan bekerja dengan waktu. Contoh penggunaannya:
        CreatedAt time.Time `bson:"createdat,omitempty" json:"createdat,omitempty"`
        
      • go.mongodb.org/mongo-driver/bson/primitive adalah bagian dari MongoDB Go Driver yang menyediakan tipe data dasar dan fungsi konversi untuk mengoperasikan BSON (Binary JSON) dalam Go. Contoh penggunaannya:
        ID primitive.ObjectID `bson:"_id,omitempty" json:"_id,omitempty"`
        

modul

  • controller.go

    1. Import Standard Library

      • context adalah package yang menyediakan tool untuk mentransmisikan informasi antar goroutine. Contoh penggunaannya:
        result, err := cols.InsertOne(context.Background(), docs)
        
      • errors adalah package yang digunakan untuk menangani kesalahan atau error. Contoh penggunaannya:
        if errors.Is(err, mongo.ErrNoDocuments) {
            fmt.Println("no data found for ID", _id)
        }
        
      • fmt adalah package yang digunakan untuk mencetak teks. Contoh penggunaannya:
        fmt.Printf("InsertOneDoc: %v\n", err)
        
      • os adalah package yang digunakan untuk berinteraksi dengan operation sistem, seperti mengakses environment variables, dll. Contoh penggunaannya:
        DBString: os.Getenv(MONGOCONNSTRINGENV),
        
      • strings adalah package yang digunakan untuk memanipulasi dan bekerja dengan string. Contoh penggunaannya:
        if strings.Contains(userdata.Username, " ") {
            return fmt.Errorf("Username tidak boleh mengandung spasi")
        }
        
      • time adalah package dari Go yang digunakan untuk memanipulasi dan bekerja dengan waktu. Contoh penggunaannya:
        {Key: "timestamp.updatedat", Value: time.Now()},
        
      • crypto/rand adalah package yang digunakan untuk menghasilkan bilangan acak yang aman dari segi kriptografi. Contoh penggunaannya:
        _, err := rand.Read(bytes)
        
      • encoding/hex adalah package yang digunakan untuk mengubah data biner menjadi representasi heksadesimal (hex) dan sebaliknya. Contoh penggunaannya:
        hex.EncodeToString(bytes), nil
        
      • go.mongodb.org/mongo-driver/bson adalah package yang digunakan untuk melakukan marshaling (konversi objek ke BSON) dan unmarshaling (konversi BSON ke objek). Contoh penggunaannya:
        filter := bson.M{"_id": userdata.ID}
        
      • go.mongodb.org/mongo-driver/bson/primitive adalah package yang menyediakan tipe data dasar dan fungsi konversi untuk mengoperasikan BSON. Contoh penggunaannya:
        func GetUserFromID(db *mongo.Database, col string, _id primitive.ObjectID){}
        
      • go.mongodb.org/mongo-driver/mongo adalah package yang menyediakan fungsionalitas untuk berinteraksi dengan MongoDB. Contoh penggunaannya:
        func MongoConnect(MONGOCONNSTRINGENV, dbname string) *mongo.Database{}
        
      • go.mongodb.org/mongo-driver/mongo/options adalah package yang menyediakan berbagai opsi yang dapat dikonfigurasi saat berinteraksi dengan server MongoDB. Contoh penggunaannya:
        options := options.Update().SetUpsert(true)
        
    2. Import External Library

      • github.com/aiteung/atdb adalah modul eksternal yang di import untuk menggunakan structnya. Contoh penggunaannya:
        var DBmongoinfo = atdb.DBInfo{}
        
      • github.com/badoux/checkmail adalah modul eksternal yang di import untuk validasi email. Contoh penggunaannya:
        err := checkmail.ValidateFormat(userdata.Email)
        
    3. Import this Module Repository

      • github.com/mytodolist1/be_p3/model adalah modul yang dibuat pada repositori ini dan di import karena berbeda folder untuk mengambil structnya. Contoh penggunaannya:
        func Register(db *mongo.Database, col string, userdata model.User) error {}
        
  • handler.go

    1. Import Standard Library

      • encoding/json adalah package yang menyediakan fungsi-fungsi untuk mengkodekan (marshal) dan mendekodekan (unmarshal) data JSON. Contoh penggunaannya:
        err = json.NewDecoder(r.Body).Decode(&datatodo)
        
      • net/http adalah package yang menyediakan dukungan untuk membangun layanan web (HTTP) dan mengirim permintaan HTTP. Contoh penggunaannya:
        func GCFHandlerGetUserFromToken(PASETOPUBLICKEY, MONGOCONNSTRINGENV, dbname, collectionname string, r *http.Request) string {}
        
      • os adalah package yang digunakan untuk berinteraksi dengan operation sistem, seperti mengakses environment variables, dll. Contoh penggunaannya:
        tokenstring, err := paseto.Encode(user.UID, user.Role, os.Getenv(PASETOPRIVATEKEYENV))
        
      • go.mongodb.org/mongo-driver/bson/primitive adalah package yang menyediakan tipe data dasar dan fungsi konversi untuk mengoperasikan BSON. Contoh penggunaannya:
        ID, err := primitive.ObjectIDFromHex(id)
        
    2. Import this Module Repository

      • github.com/mytodolist1/be_p3/model adalah modul yang digunakan untuk mengambil structnya. Contoh penggunaannya:
        var datauser model.User
        
      • github.com/mytodolist1/be_p3/paseto adalah modul yang digunakan untuk encode dan decode token. Contoh penggunaannya:
        userInfo, err := paseto.Decode(os.Getenv(PASETOPUBLICKEY), token)
        
  • hash.go

    1. Import External Library
      • golang.org/x/crypto/bcrypt adalah package yang digunakan untuk mengenkripsi dan memverifikasi kata sandi menggunakan fungsi bcrypt. Contoh penggunaannya:
        bytes, err := bcrypt.GenerateFromPassword([]byte(password), 14)
        

paseto

  • paseto.go

    1. Import Standard Library

      • encoding/json adalah package yang menyediakan fungsi-fungsi untuk mengkodekan (marshal) dan mendekodekan (unmarshal) data JSON. Contoh penggunaannya:
        json.Unmarshal(token.ClaimsJSON(), &payload)
        
      • fmt adalah package yang digunakan untuk mencetak teks. Contoh penggunaannya:
        fmt.Println("Decode ParseV4Public : ", err)
        
      • time adalah package dari Go yang digunakan untuk memanipulasi dan bekerja dengan waktu. Contoh penggunaannya:
        token.SetIssuedAt(time.Now())
        
    2. Import External Library

      • aidanwoods.dev/go-paseto adalah package yang digunakan untuk membuat token paseto. Contoh penggunaannya:
        secretKey := paseto.NewV4AsymmetricSecretKey()
        
  • paseto_test.go

    1. Import Standard Library

      • fmt adalah package yang digunakan untuk mencetak teks. Contoh penggunaannya:
        fmt.Println("hasil: ", hasil, err)
        
      • testing adalah package yang menyediakan alat dan infrastruktur untuk menulis dan menjalankan pengujian (testing). Contoh penggunaannya:
        func TestGenerateTokenPaseto(t *testing.T) {}
        
    2. Import External Library

      • github.com/stretchr/testify/require adalah package yang digunakan untuk menghentikan eksekusi pengujian jika gagal. Contoh penggunaannya:
        require.NoError(t, err)
        
    3. Import this Module Repository

      • github.com/mytodolist1/be_p3/paseto adalah modul yang digunakan untuk encode dan decode token. Contoh penggunaannya:
        privateKey, publicKey := paseto.GenerateKey()
        
dev_test.go
    1. Import Standard Library
      • fmt adalah package yang digunakan untuk mencetak teks. Contoh penggunaannya:
        fmt.Println("Status", status)
        
      • testing adalah package yang menyediakan alat dan infrastruktur untuk menulis dan menjalankan pengujian (testing). Contoh penggunaannya:
        func TestLogIn(t *testing.T) {}
        
      • go.mongodb.org/mongo-driver/bson/primitive adalah package yang menyediakan tipe data dasar dan fungsi konversi untuk mengoperasikan BSON. Contoh penggunaannya:
        ID, err := primitive.ObjectIDFromHex(id)
        
    1. Import this Module Repository
      • github.com/mytodolist1/be_p3/model adalah modul yang digunakan untuk mengambil structnya. Contoh penggunaannya:
        var data model.User
        
      • github.com/mytodolist1/be_p3/modul adalah modul yang digunakan untuk memanggil controller. Contoh penggunaannya:
        var mconn = modul.MongoConnect("MONGOSTRING", "mytodolist")
        

tags

  • Release Version Go
    git tag v0.0.1
    git push origin --tags
    go list -m github.com/mytodolist1/be_p3@v0.0.1
    

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL