Skip to content

Commit

Permalink
Updates #1 Refactored Code
Browse files Browse the repository at this point in the history
  • Loading branch information
Mshivam2409 committed Mar 7, 2021
1 parent 08636bc commit 7c44cb4
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 25 deletions.
3 changes: 1 addition & 2 deletions api/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"fmt"
"strconv"

"github.com/Mshivam2409/AnC-Courses/database"
"github.com/Mshivam2409/AnC-Courses/models"
"github.com/Mshivam2409/AnC-Courses/services"
"github.com/gofiber/fiber/v2"
Expand Down Expand Up @@ -42,7 +41,7 @@ func CreateFile(c *fiber.Ctx) error {
{Key: "driveFiles", Value: bson.A{"$each", files}},
}},
}
err = database.MongoClient.Courses.Collection("courses").FindOneAndUpdate(context.TODO(), bson.D{{Key: "number", Value: cno}}, update).Decode(&models.MGMCourse{})
err = services.MongoClient.Courses.Collection("courses").FindOneAndUpdate(context.TODO(), bson.D{{Key: "number", Value: cno}}, update).Decode(&models.MGMCourse{})
return c.Status(200).JSON(fiber.Map{"message": "success"})
}

Expand Down
File renamed without changes.
31 changes: 15 additions & 16 deletions graph/schema.resolvers.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
"fmt"
"log"

"github.com/Mshivam2409/AnC-Courses/database"
"github.com/Mshivam2409/AnC-Courses/graph/generated"
"github.com/Mshivam2409/AnC-Courses/models"
"github.com/Mshivam2409/AnC-Courses/services"
Expand Down Expand Up @@ -44,23 +43,23 @@ func (r *mutationResolver) AddCourse(ctx context.Context, course models.NewCours
Number: course.Number,
Reviews: []primitive.ObjectID{},
}
_, err = database.MongoClient.Courses.Collection("courses").InsertOne(context.TODO(), c)
_, err = services.MongoClient.Courses.Collection("courses").InsertOne(context.TODO(), c)
return &models.Response{Ok: true, Message: "Course created Successfully!"}, err
}

func (r *mutationResolver) AddReview(ctx context.Context, review models.NewReview) (*models.Response, error) {
wc := writeconcern.New(writeconcern.WMajority())
rc := readconcern.Snapshot()
txnOpts := options.Transaction().SetWriteConcern(wc).SetReadConcern(rc)
session, err := database.MongoClient.Courses.Client().StartSession()
session, err := services.MongoClient.Courses.Client().StartSession()
if err != nil {
return &models.Response{Ok: false, Message: err.Error()}, err
}
defer session.EndSession(context.Background())
err = mongo.WithSession(context.Background(), session, func(sessionContext mongo.SessionContext) error {
c := &models.MGMCourse{}
filter := bson.D{{Key: "number", Value: review.Course}}
err := database.MongoClient.Courses.Collection("courses").FindOne(sessionContext, filter).Decode(c)
err := services.MongoClient.Courses.Collection("courses").FindOne(sessionContext, filter).Decode(c)
if err != nil {
log.Println(err)
return err
Expand All @@ -71,7 +70,7 @@ func (r *mutationResolver) AddReview(ctx context.Context, review models.NewRevie
log.Println(err)
return err
}
result, err := database.MongoClient.Courses.Collection("reviews").InsertOne(
result, err := services.MongoClient.Courses.Collection("reviews").InsertOne(
sessionContext,
&models.MGMReview{
Course: cid,
Expand All @@ -97,7 +96,7 @@ func (r *mutationResolver) AddReview(ctx context.Context, review models.NewRevie
},
}
fmt.Printf("%v", update)
_ = database.MongoClient.Courses.Collection("courses").FindOneAndUpdate(sessionContext, filter, update)
_ = services.MongoClient.Courses.Collection("courses").FindOneAndUpdate(sessionContext, filter, update)
fmt.Printf("1000")
if err = session.CommitTransaction(sessionContext); err != nil {
log.Println(err)
Expand Down Expand Up @@ -127,9 +126,9 @@ func (r *mutationResolver) ModifyReview(ctx context.Context, reviewID string, st
return res, err
}
update := bson.D{{Key: "$set", Value: bson.D{{Key: "approved", Value: status}}}}
err = database.MongoClient.Courses.Collection("reviews").FindOneAndUpdate(context.TODO(),
err = services.MongoClient.Courses.Collection("reviews").FindOneAndUpdate(context.TODO(),
bson.D{{Key: "_id", Value: rid}}, update).Decode(rev)
// err = database.MongoClient.Courses.Collection("reviews").FindOne(context.TODO(), bson.D{{Key: "_id", Value: rid}}).Decode(rev)
// err = services.MongoClient.Courses.Collection("reviews").FindOne(context.TODO(), bson.D{{Key: "_id", Value: rid}}).Decode(rev)
if err != nil {
return res, err
}
Expand All @@ -146,7 +145,7 @@ func (r *mutationResolver) ElevateUser(ctx context.Context, username string) (*m
u := &models.MGMUser{}
filter := bson.D{{Key: "username", Value: username}}
update := bson.D{{Key: "$inc", Value: bson.D{{Key: "clearance", Value: 1}}}}
err := database.MongoClient.Users.Collection("ug").FindOneAndUpdate(context.TODO(), filter, update).Decode(u)
err := services.MongoClient.Users.Collection("ug").FindOneAndUpdate(context.TODO(), filter, update).Decode(u)
return &models.User{
ID: u.ID,
Name: u.Name,
Expand All @@ -161,7 +160,7 @@ func (r *mutationResolver) DemoteUser(ctx context.Context, username string) (*mo
u := &models.MGMUser{}
filter := bson.D{{Key: "username", Value: username}}
update := bson.D{{Key: "$inc", Value: bson.D{{Key: "clearance", Value: -1}}}}
err := database.MongoClient.Users.Collection("ug").FindOneAndUpdate(context.TODO(), filter, update).Decode(u)
err := services.MongoClient.Users.Collection("ug").FindOneAndUpdate(context.TODO(), filter, update).Decode(u)
return &models.User{
ID: u.ID,
Name: u.Name,
Expand All @@ -176,7 +175,7 @@ func (r *mutationResolver) ToggleBanUser(ctx context.Context, username string, b
u := &models.MGMUser{}
filter := bson.D{{Key: "username", Value: username}}
update := bson.D{{Key: "$set", Value: bson.D{{Key: "banned", Value: banned}}}}
err := database.MongoClient.Users.Collection("ug").FindOneAndUpdate(context.TODO(), filter, update).Decode(u)
err := services.MongoClient.Users.Collection("ug").FindOneAndUpdate(context.TODO(), filter, update).Decode(u)
return &models.User{
ID: u.ID,
Name: u.Name,
Expand All @@ -195,7 +194,7 @@ func (r *queryResolver) GetCourseData(ctx context.Context, number string) (*mode
// }
c := &models.MGMCourse{}
filter := bson.D{{Key: "number", Value: number}}
err := database.MongoClient.Courses.Collection("courses").FindOne(context.TODO(), filter).Decode(c)
err := services.MongoClient.Courses.Collection("courses").FindOne(context.TODO(), filter).Decode(c)
if err != nil {
log.Println(err)
return &models.CourseData{}, err
Expand All @@ -206,7 +205,7 @@ func (r *queryResolver) GetCourseData(ctx context.Context, number string) (*mode
return &models.CourseData{}, err
}
filter = bson.D{{Key: "course", Value: cid}}
cur, err := database.MongoClient.Courses.Collection("reviews").Find(context.TODO(), filter)
cur, err := services.MongoClient.Courses.Collection("reviews").Find(context.TODO(), filter)
if err != nil {
log.Println(err)
return &models.CourseData{}, err
Expand Down Expand Up @@ -248,13 +247,13 @@ func (r *queryResolver) GetCourseData(ctx context.Context, number string) (*mode
func (r *queryResolver) GetReviewsbyCourse(ctx context.Context, number string) ([]*models.Review, error) {
c := &models.MGMCourse{}
filter := bson.D{{Key: "number", Value: number}}
err := database.MongoClient.Courses.Collection("courses").FindOne(context.TODO(), filter).Decode(c)
err := services.MongoClient.Courses.Collection("courses").FindOne(context.TODO(), filter).Decode(c)
if err != nil {
print(err.Error())
}
cid, err := primitive.ObjectIDFromHex(c.ID)
filter = bson.D{{Key: "course", Value: cid}}
cur, err := database.MongoClient.Courses.Collection("reviews").Find(context.TODO(), filter)
cur, err := services.MongoClient.Courses.Collection("reviews").Find(context.TODO(), filter)
reviews := []*models.Review{}
for cur.Next(context.TODO()) {
elem := &models.MGMReview{}
Expand All @@ -279,7 +278,7 @@ func (r *queryResolver) SearchCourses(ctx context.Context, params *models.Search
}
filter := bson.D{{Key: "number", Value: bson.D{{Key: "$regex", Value: primitive.Regex{Pattern: "^" + params.Identifier, Options: "i"}}}}}
limit := int64(10)
cur, err := database.MongoClient.Courses.Collection("courses").Find(context.TODO(), filter, &options.FindOptions{Limit: &limit})
cur, err := services.MongoClient.Courses.Collection("courses").Find(context.TODO(), filter, &options.FindOptions{Limit: &limit})
if err != nil {
print(err.Error())
}
Expand Down
3 changes: 1 addition & 2 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"log"

"github.com/Mshivam2409/AnC-Courses/api"
"github.com/Mshivam2409/AnC-Courses/database"
"github.com/Mshivam2409/AnC-Courses/services"
"github.com/spf13/viper"
"golang.org/x/sync/errgroup"
Expand All @@ -20,7 +19,7 @@ func init() {
if err != nil {
log.Panicf("Fatal error config file: %s", err)
}
database.ConnectMongo()
services.ConnectMongo()
services.InitalizeOryServices()
}

Expand Down
2 changes: 1 addition & 1 deletion database/mongo.go → services/mongo.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package database
package services

import (
"context"
Expand Down
7 changes: 3 additions & 4 deletions services/ory.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"fmt"
"log"

"github.com/Mshivam2409/AnC-Courses/database"
"github.com/Mshivam2409/AnC-Courses/models"
"github.com/gofiber/fiber/v2"
kratos "github.com/ory/kratos-client-go/client"
Expand Down Expand Up @@ -58,7 +57,7 @@ func (ory *Ory) IsAuthorized(tokenString string, resource string) (bool, error)
func (ory *Ory) CanRegister(username string) (bool, error) {
u := &models.MGMUser{}
// filte/r := bson.D{{Key: "username", Value: username}}
err := database.MongoClient.Users.Collection("ug").FindOne(context.TODO(), bson.D{}).Decode(u)
err := MongoClient.Users.Collection("ug").FindOne(context.TODO(), bson.D{}).Decode(u)
if err != nil {
log.Printf("Unable to check access for %s : %v", username, err)
}
Expand All @@ -74,7 +73,7 @@ func (ory *Ory) SetKratosID(kid string, username string) error {
filter := bson.D{{Key: "username", Value: username}}
update := bson.D{{Key: "$set", Value: bson.D{{Key: "kid", Value: kid}}}}
fmt.Println(kid, 11)
err := database.MongoClient.Users.Collection("ug").FindOneAndUpdate(context.TODO(), filter, update).Decode(u)
err := MongoClient.Users.Collection("ug").FindOneAndUpdate(context.TODO(), filter, update).Decode(u)
if err != nil {
log.Printf("Unable to check access : %v", err)
}
Expand Down Expand Up @@ -128,7 +127,7 @@ func (ory *Ory) GetClearanceLevel(tokenString string) (int, error) {
}
u := &models.MGMUser{}
filter := bson.D{{Key: "username", Value: claims["username"]}}
err = database.MongoClient.Users.Collection("ug").FindOne(context.TODO(), filter).Decode(u)
err = MongoClient.Users.Collection("ug").FindOne(context.TODO(), filter).Decode(u)
if err != nil {
log.Printf("Unable to check access : %v", err)
}
Expand Down

0 comments on commit 7c44cb4

Please sign in to comment.