Skip to content

mytodolist1/todolist_be

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Backend Mytodolist

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

model

  • type.go
    1. Import Standard Library
      • 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

About

Backend Mytodolist

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages