Mhamdans17 commited on
Commit
9f5aad1
·
1 Parent(s): 41f6134

feat: move checkout to dedicated page and add member check logic

Browse files
Files changed (2) hide show
  1. controllers/member_controller.go +28 -0
  2. main.go +1 -0
controllers/member_controller.go CHANGED
@@ -6,6 +6,7 @@ import (
6
  "service-warungpos-go/models"
7
 
8
  "github.com/gin-gonic/gin"
 
9
  )
10
 
11
  // ListMembers (GET /api/members)
@@ -207,3 +208,30 @@ func DeleteMember(c *gin.Context) {
207
 
208
  c.JSON(http.StatusOK, gin.H{"detail": "Member dihapus"})
209
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  "service-warungpos-go/models"
7
 
8
  "github.com/gin-gonic/gin"
9
+ "gorm.io/gorm"
10
  )
11
 
12
  // ListMembers (GET /api/members)
 
208
 
209
  c.JSON(http.StatusOK, gin.H{"detail": "Member dihapus"})
210
  }
211
+
212
+ // CheckMember (GET /api/members/check?query=xxx)
213
+ func CheckMember(c *gin.Context) {
214
+ userVal, exists := c.Get("user")
215
+ if !exists {
216
+ c.JSON(http.StatusUnauthorized, gin.H{"detail": "Unauthorized"})
217
+ return
218
+ }
219
+ user := userVal.(*models.User)
220
+ companyID := *user.CompanyID
221
+ query := c.Query("query")
222
+
223
+ if query == "" {
224
+ c.JSON(http.StatusBadRequest, gin.H{"detail": "Query pencarian wajib diisi"})
225
+ return
226
+ }
227
+
228
+ var member models.Member
229
+ if err := config.DB.Preload("Branch").Preload("CreatedBy").Preload("PointHistories", func(db *gorm.DB) *gorm.DB {
230
+ return db.Order("created_at DESC").Limit(10)
231
+ }).Where("company_id = ? AND (member_id = ? OR phone = ?)", companyID, query, query).First(&member).Error; err != nil {
232
+ c.JSON(http.StatusNotFound, gin.H{"detail": "Member tidak ditemukan"})
233
+ return
234
+ }
235
+
236
+ c.JSON(http.StatusOK, member)
237
+ }
main.go CHANGED
@@ -157,6 +157,7 @@ func main() {
157
  {
158
  members.Use(middleware.GetCurrentUser(), middleware.RequireTenantContext())
159
  {
 
160
  members.GET("/", controllers.ListMembers)
161
  members.POST("/", controllers.CreateMember)
162
  members.PUT("/:member_id", controllers.UpdateMember)
 
157
  {
158
  members.Use(middleware.GetCurrentUser(), middleware.RequireTenantContext())
159
  {
160
+ members.GET("/check", controllers.CheckMember)
161
  members.GET("/", controllers.ListMembers)
162
  members.POST("/", controllers.CreateMember)
163
  members.PUT("/:member_id", controllers.UpdateMember)