Skip to content

Commit

Permalink
Modified application model and linked project with prof
Browse files Browse the repository at this point in the history
  • Loading branch information
piyushsingal3 committed Jul 11, 2024
1 parent 2a50f62 commit 413593e
Show file tree
Hide file tree
Showing 8 changed files with 45 additions and 37 deletions.
2 changes: 1 addition & 1 deletion auth/user.signup.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func signUpHandler(mail_channel chan mail.Mail) gin.HandlerFunc {
}

logrus.Infof("User %s created successfully with id %d", signupReq.UserID, id)
mail_channel <- mail.GenerateMail(signupReq.UserID, "Registered on HC Automation Portal", "Dear "+signupReq.UserID+",\n\nYou have been registered on HC Automation Portal")
mail_channel <- mail.GenerateMail(signupReq.UserID, "Registered on Foreign Exposure Program portal", "Dear "+signupReq.UserID+",\n\nYou have been registered on Foreign Exposure Program Portal")
ctx.JSON(http.StatusOK, gin.H{"status": "Successfully signed up"})
}
}
2 changes: 1 addition & 1 deletion config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ PORT:
ADMIN:
APPLICATION: "3492"
PROF: "3490"
STUDENT: 3500
STUDENT: "3500"

MAIL:
HOST: "mmtp.iitk.ac.in"
Expand Down
8 changes: 4 additions & 4 deletions mail/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ type Mail struct {

func (mail *Mail) BuildMessage() []byte {
message := "MIME-version: 1.0;\nContent-Type: text/html; charset=\"UTF-8\";\r\n"
message += fmt.Sprintf("From: Health Centre Automation System IITK<%s>\r\n", sender)
message += fmt.Sprintf("Subject: %s | Health Centre Automation System\r\n", mail.Subject)

message += fmt.Sprintf("From: Foreign Exposure program<%s>\r\n", sender)
message += fmt.Sprintf("Subject: %s | Foreign Exposure Program\r\n", mail.Subject)

message += fmt.Sprintf("To: %s\r\n\r\n", mail.To)

message += strings.Replace(mail.Body, "\n", "<br>", -1)
message += "<br><br>--<br>Health Centre Automation System<br>"
message += "<br><br>--<br>Foreign Exposure program<br>"
message += "<br><br>--<br>Academics and career council<br>"
message += "Indian Institute of Technology Kanpur<br><br>"
message += "<small>This is an auto-generated email. Please do not reply.</small>"

Expand Down
2 changes: 1 addition & 1 deletion prof/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ func openConnection() {
port := viper.GetString("DATABASE.PORT")
password := viper.GetString("DATABASE.PASSWORD")

dbName := viper.GetString("DBNAME.PROF")
dbName := viper.GetString("DBNAME.APPLICATION")
user := viper.GetString("DATABASE.USER")

dsn := "host=" + host + " user=" + user + " password=" + password
Expand Down
18 changes: 18 additions & 0 deletions project/admin.get_projects.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,21 @@ func getLimitedProjectsHandler(ctx *gin.Context) {

ctx.JSON(http.StatusOK, projects)
}
func getProjectsFromProfHandler(ctx *gin.Context) {
var projects []Project

cid, err := strconv.ParseUint(ctx.Param("cid"), 10, 32)
if err != nil {
ctx.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}

err = getProjectsFromProf(ctx, &projects, uint(cid))

if err != nil {
ctx.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}

ctx.JSON(http.StatusOK, projects)
}
13 changes: 5 additions & 8 deletions project/db.project.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ func deleteProject(ctx *gin.Context, id uint) error {
tx := db.WithContext(ctx).Where("id = ?", id).Delete(&Project{})
return tx.Error
}
func getProjectsFromProf(ctx *gin.Context, projects *[]Project, id uint) error {
tx := db.WithContext(ctx).Where("prof_id = ?", id).Find(projects)
return tx.Error
}
func GetProjectName(ctx *gin.Context, id uint) (string, error) {
var p Project
err := getProject(ctx, &p, id)
Expand All @@ -38,14 +42,7 @@ func GetProjectName(ctx *gin.Context, id uint) (string, error) {
}
return p.ProjectName, nil
}
func GetProfessorName(ctx *gin.Context, id uint) (string, error) {
var p Project
err := getProject(ctx, &p, id)
if err != nil {
return "", err
}
return p.ProfessorName, nil
}

func GetUniversityName(ctx *gin.Context, id uint) (string, error) {
var p Project
err := getProject(ctx, &p, id)
Expand Down
24 changes: 7 additions & 17 deletions project/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@ package project
import (
"time"

"github.com/pclubiitk/fep-backend/prof"
"github.com/pclubiitk/fep-backend/student"
"gorm.io/gorm"
)

type Project struct {
gorm.Model
ProjectName string `json:"project_name"`
ProfessorName string `json:"professor_name"`
ProfID uint `json:"prof_id" gorm:"index;->;<-:create"`
Prof prof.Prof `json:"-" gorm:"foreignkey:ProfID"`
UniversityName string `json:"university_name"`
UniversityLocation string `json:"university_location"`
ProjectFieldOfStudy string `json:"project_field_of_study"`
Expand All @@ -24,20 +26,8 @@ type Project struct {

type Application struct {
gorm.Model
Name string `json:"name"`
RollNo string `json:"roll_no"`
EmailId string `json:"email_id"`
Programme string `json:"programme"`
Department string `json:"department"`
GraduationYear string `json:"graduation_year"`
CPI float64 `json:"cpi"`
ProjectID uint `json:"project_id" gorm:"index;->;<-:create"`
Project Project `json:"-" gorm:"foreignkey:ProjectID"`
StudentID uint `json:"student_id" gorm:"index;->;<-:create"`
Student student.Student `json:"-" gorm:"foreignkey:StudentID"`
ProfessorName string `json:"professor_name"`
ProfessorEmailId string `json:"professor_email_id"`
UniversityName string `json:"university_name"`
ResumeLink string `json:"resume_link"`
ApplicationDeadline time.Time `json:"application_deadline"`
ProjectID uint `json:"project_id" gorm:"index;->;<-:create"`
Project Project `json:"-" gorm:"foreignkey:ProjectID"`
StudentID uint `json:"student_id" gorm:"index;->;<-:create"`
Student student.Student `json:"-" gorm:"foreignkey:StudentID"`
}
13 changes: 8 additions & 5 deletions project/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ func AdminRouter(r *gin.Engine) {
admin.GET("/project", getAllProjectsHandler)
admin.GET("/project/:cid", getProjectHandler)
admin.GET("/project/limited", getLimitedProjectsHandler)
admin.GET("/project/prof/:cid", getProjectsFromProfHandler)

admin.PUT("/project", updateProjectHandler)
admin.POST("/project", addNewHandler)
Expand All @@ -29,11 +30,13 @@ func AdminRouter(r *gin.Engine) {

}
func StudentRouter(r *gin.Engine) {
student := r.Group("/api/student/application")
student := r.Group("/api/student")
{
student.POST("", addApplicationHandler)
student.GET("/:cid", getApplicationsofStudentHandler)
student.PUT("", updateApplicationHandler)
student.DELETE("/:cid", deleteApplicationHandler)
student.GET("/project", getAllProjectsHandler)
student.GET("/project/prof/:cid", getProjectsFromProfHandler)
student.POST("/application", addApplicationHandler)
student.GET("/application/:cid", getApplicationsofStudentHandler)
student.PUT("/application", updateApplicationHandler)
student.DELETE("/application/:cid", deleteApplicationHandler)
}
}

0 comments on commit 413593e

Please sign in to comment.