Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3,785 changes: 2,869 additions & 916 deletions generated/api.gen.go

Large diffs are not rendered by default.

3,434 changes: 2,725 additions & 709 deletions generated/external/academic_api/client.gen.go

Large diffs are not rendered by default.

471 changes: 470 additions & 1 deletion generated/external/user_api/client.gen.go

Large diffs are not rendered by default.

101 changes: 101 additions & 0 deletions internal/handler/cancelled_class.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
package handler

import (
"net/http"

"github.com/gin-gonic/gin"

api "github.com/fun-dotto/admin-bff-api/generated"
"github.com/fun-dotto/admin-bff-api/generated/external/academic_api"
"github.com/fun-dotto/admin-bff-api/internal/middleware"
)

// CancelledClassesV1List 休講一覧を取得する
func (h *Handler) CancelledClassesV1List(c *gin.Context, params api.CancelledClassesV1ListParams) {
if !middleware.RequireAnyClaim(c, "admin", "developer") {
return
}

response, err := h.academicClient.CancelledClassesV1ListWithResponse(c.Request.Context(), &academic_api.CancelledClassesV1ListParams{
SubjectIds: params.SubjectIds,
From: params.From,
Until: params.Until,
})
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}

if response.JSON200 == nil {
c.JSON(response.StatusCode(), gin.H{"error": "unexpected response from upstream"})
return
}

c.JSON(http.StatusOK, response.JSON200)
}

// CancelledClassesV1Create 休講を作成する
func (h *Handler) CancelledClassesV1Create(c *gin.Context) {
if !middleware.RequireAnyClaim(c, "admin", "developer") {
return
}

var req academic_api.CancelledClassRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}

response, err := h.academicClient.CancelledClassesV1CreateWithResponse(c.Request.Context(), req)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}

if response.JSON201 == nil {
c.JSON(response.StatusCode(), gin.H{"error": "unexpected response from upstream"})
return
}

c.JSON(http.StatusCreated, response.JSON201)
}

// CancelledClassesV1Fetch 教務システムから休講を取得する
func (h *Handler) CancelledClassesV1Fetch(c *gin.Context) {
if !middleware.RequireAnyClaim(c, "admin", "developer") {
return
}

response, err := h.academicClient.CancelledClassesV1FetchWithResponse(c.Request.Context())
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}

if response.JSON200 == nil {
c.JSON(response.StatusCode(), gin.H{"error": "unexpected response from upstream"})
return
}

c.JSON(http.StatusOK, response.JSON200)
}

// CancelledClassesV1Delete 休講を削除する
func (h *Handler) CancelledClassesV1Delete(c *gin.Context, id string) {
if !middleware.RequireAnyClaim(c, "admin", "developer") {
return
}

response, err := h.academicClient.CancelledClassesV1DeleteWithResponse(c.Request.Context(), id)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}

if response.StatusCode() != http.StatusNoContent {
c.JSON(response.StatusCode(), gin.H{"error": "unexpected response from upstream"})
return
}

c.Status(http.StatusNoContent)
}
7 changes: 5 additions & 2 deletions internal/handler/faculty.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,20 @@ import (

"github.com/gin-gonic/gin"

api "github.com/fun-dotto/admin-bff-api/generated"
"github.com/fun-dotto/admin-bff-api/generated/external/academic_api"
"github.com/fun-dotto/admin-bff-api/internal/middleware"
)

// FacultiesV1List 教員一覧を取得する
func (h *Handler) FacultiesV1List(c *gin.Context) {
func (h *Handler) FacultiesV1List(c *gin.Context, params api.FacultiesV1ListParams) {
if !middleware.RequireAnyClaim(c, "admin", "developer") {
return
}

response, err := h.academicClient.FacultiesV1ListWithResponse(c.Request.Context(), &academic_api.FacultiesV1ListParams{})
response, err := h.academicClient.FacultiesV1ListWithResponse(c.Request.Context(), &academic_api.FacultiesV1ListParams{
Q: params.Q,
})
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
Expand Down
62 changes: 62 additions & 0 deletions internal/handler/fcm_token.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package handler

import (
"net/http"

"github.com/gin-gonic/gin"

api "github.com/fun-dotto/admin-bff-api/generated"
"github.com/fun-dotto/admin-bff-api/generated/external/user_api"
"github.com/fun-dotto/admin-bff-api/internal/middleware"
)

// FCMTokenV1List FCMトークン一覧を取得する
func (h *Handler) FCMTokenV1List(c *gin.Context, params api.FCMTokenV1ListParams) {
if !middleware.RequireAnyClaim(c, "admin", "developer") {
return
}

response, err := h.userClient.FCMTokenV1ListWithResponse(c.Request.Context(), &user_api.FCMTokenV1ListParams{
UserIds: params.UserIds,
Tokens: params.Tokens,
UpdatedAtFrom: params.UpdatedAtFrom,
UpdatedAtTo: params.UpdatedAtTo,
})
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}

if response.JSON200 == nil {
c.JSON(response.StatusCode(), gin.H{"error": "unexpected response from upstream"})
return
}

c.JSON(http.StatusOK, response.JSON200)
}

// FCMTokenV1Upsert FCMトークンを作成または更新する
func (h *Handler) FCMTokenV1Upsert(c *gin.Context) {
if !middleware.RequireAnyClaim(c, "admin", "developer") {
return
}

var req user_api.FCMTokenRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}

response, err := h.userClient.FCMTokenV1UpsertWithResponse(c.Request.Context(), req)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}

if response.JSON200 == nil {
c.JSON(response.StatusCode(), gin.H{"error": "unexpected response from upstream"})
return
}

c.JSON(http.StatusOK, response.JSON200)
}
101 changes: 101 additions & 0 deletions internal/handler/makeup_class.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
package handler

import (
"net/http"

"github.com/gin-gonic/gin"

api "github.com/fun-dotto/admin-bff-api/generated"
"github.com/fun-dotto/admin-bff-api/generated/external/academic_api"
"github.com/fun-dotto/admin-bff-api/internal/middleware"
)

// MakeupClassesV1List 補講一覧を取得する
func (h *Handler) MakeupClassesV1List(c *gin.Context, params api.MakeupClassesV1ListParams) {
if !middleware.RequireAnyClaim(c, "admin", "developer") {
return
}

response, err := h.academicClient.MakeupClassesV1ListWithResponse(c.Request.Context(), &academic_api.MakeupClassesV1ListParams{
SubjectIds: params.SubjectIds,
From: params.From,
Until: params.Until,
})
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}

if response.JSON200 == nil {
c.JSON(response.StatusCode(), gin.H{"error": "unexpected response from upstream"})
return
}

c.JSON(http.StatusOK, response.JSON200)
}

// MakeupClassesV1Create 補講を作成する
func (h *Handler) MakeupClassesV1Create(c *gin.Context) {
if !middleware.RequireAnyClaim(c, "admin", "developer") {
return
}

var req academic_api.MakeupClassRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}

response, err := h.academicClient.MakeupClassesV1CreateWithResponse(c.Request.Context(), req)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}

if response.JSON201 == nil {
c.JSON(response.StatusCode(), gin.H{"error": "unexpected response from upstream"})
return
}

c.JSON(http.StatusCreated, response.JSON201)
}

// MakeupClassesV1Fetch 教務システムから補講を取得する
func (h *Handler) MakeupClassesV1Fetch(c *gin.Context) {
if !middleware.RequireAnyClaim(c, "admin", "developer") {
return
}

response, err := h.academicClient.MakeupClassesV1FetchWithResponse(c.Request.Context())
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}

if response.JSON200 == nil {
c.JSON(response.StatusCode(), gin.H{"error": "unexpected response from upstream"})
return
}

c.JSON(http.StatusOK, response.JSON200)
}

// MakeupClassesV1Delete 補講を削除する
func (h *Handler) MakeupClassesV1Delete(c *gin.Context, id string) {
if !middleware.RequireAnyClaim(c, "admin", "developer") {
return
}

response, err := h.academicClient.MakeupClassesV1DeleteWithResponse(c.Request.Context(), id)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}

if response.StatusCode() != http.StatusNoContent {
c.JSON(response.StatusCode(), gin.H{"error": "unexpected response from upstream"})
return
}

c.Status(http.StatusNoContent)
}
34 changes: 34 additions & 0 deletions internal/handler/notify_irregularity.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package handler

import (
"net/http"

"github.com/gin-gonic/gin"

api "github.com/fun-dotto/admin-bff-api/generated"
"github.com/fun-dotto/admin-bff-api/generated/external/academic_api"
"github.com/fun-dotto/admin-bff-api/internal/middleware"
)

// NotifyIrregularitiesV1Notify 時間割変更を通知する
func (h *Handler) NotifyIrregularitiesV1Notify(c *gin.Context, params api.NotifyIrregularitiesV1NotifyParams) {
if !middleware.RequireAnyClaim(c, "admin", "developer") {
return
}

response, err := h.academicClient.NotifyIrregularitiesV1NotifyWithResponse(c.Request.Context(), &academic_api.NotifyIrregularitiesV1NotifyParams{
UserIds: params.UserIds,
Date: params.Date,
})
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}

if response.StatusCode() != http.StatusNoContent {
c.JSON(response.StatusCode(), gin.H{"error": "unexpected response from upstream"})
return
}

c.Status(http.StatusNoContent)
}
Loading
Loading