Skip to end of metadata
Go to start of metadata


package dao

import "credential-management/src/internal/model"

type Client interface {
	Connect() error
	Disconnect() error
	InsertLookup(tr *Transaction, credentialLookup *model.CredentialLookup) error
	UpdateLookup(tr *Transaction, credentialLookup *model.CredentialLookup) error
	GetLookupById(tr *Transaction, id string) (*model.CredentialLookup, error)
	GetLookupByField(tr *Transaction, field string, value string) ([]*model.CredentialLookup, error)
	DeleteLookup(tr *Transaction, id string) error

Type Implementing Interface

type MongoClient struct {
    connectURI string
    dbName     string
    client     *mongo.Client
    collection *mongo.Collection

func NewMongoClient(host string) Client {

    return client

func (m *MongoClient) Connect() error {

Convert from Interface to Type

client := NewMongoClient("host")

//cast to MongoClient to set mt.Coll
var mongoClient = client.(*MongoClient)

//perform actions only available in mongoClient type
mongoClient.collection = mt.Coll

  • No labels