Custom Return Output

커스텀 리턴 출력은, 설정한 조건에 따라 서로 다른 액션을 출력해요.

간단한 예로 설명할게요.

다음의 예시 앱은 학생과 선생님이 쓰는 커뮤니티가 구분되어 있어요.

버튼을 누르면 유저를 선생님인지 학생인지 판단한 뒤에 특정 게시판으로 이동하는 로직을 만들어 볼게요.

유저 구분은 유저 정보(_users) 메타에서 옵션으로 설정했어요.

버튼을 눌렀을 때 로직이 실행되도록 아래 사진처럼 설정했어요.

이벤트 타입은 상황에 맞게 buttonClick 이라고 설정했어요.

추가 데이터는 아래와 같이 작성했어요. userId에 버튼을 누른 유저 정보를 넣어준다는 뜻이에요.

{
	"userId": "userInfo._id.oid"
}

로직을 실행하기 위해 이벤트 타입과 컬렉션 명을 작성해요. 위의 액션타입 설정 이미지와 같이, 로직을 구분할 때 보통 두 가지를 함께 봐요.

컬렉션 명은 어떤 메타에서 사건이 일어나는지를 뜻하고 이벤트 타입은 어떤 상황에 로직이 실행되는지, 플로우 옵션은 어떤 실행을 할지 설정해요.

이벤트 옵션은 특정 조건에만 실행되도록 설정하는 부분이라 여기서는 비워주세요.

세부 처리 조건에 @query와 @setValue를 설정해요.

@query는 어떤 데이터 값을 가져올 때, @setValue는 특정한 값에 데이터를 입력할 때 사용해요.

버튼을 누른 유저의 _id를 가져올게요. _id를 조회할 때는 오른쪽에 oid값을 넣어야 해요.

@setValue로 특정한 값에 유저 데이터를 넣어줄게요.

#first는 가져온 데이터 중 첫번째 데이터를 의미하고 tmpDocument.findDocument는 방금 찾은 데이터를 뜻해요.

여기까지 과정을 정리하면 버튼을 누른 유저 정보를 가져와, userDoc이라는 값에 넣어줬어요.

{
	"#find": "{'_id' : 'tmpDocument.documentJson.userId'}",
	"#collection": "_users"
}
{
	"userDoc": {
		"#first": "tmpDocument.findDocument"
	}
}

다음엔 @if 이벤트가 2개 있어요. 구성이 같으니 첫 번째 @if의 설명을 참고해 주세요.

#condition으로 유저가 선생님일 때를 특정해요.

#eq 조건으로 tmpDocument.userDoc.userStatus가 teacher와 같을 때를 특정했어요.

그런 뒤 #ifTrue와 #ifFalse로 참일 때와 거짓일 때 어떻게 할지 설정할 수 있어요.

참일 때 @setValue로 custom이라는 값에 teacherMulti메타로 이동하는 액션을 넣어줬어요. 다른 액션도 가능해요.

{
	"#left": "tmpDocument.userDoc.userStatus",
	"#right": "teacher"
}
{
	"custom": {
		"action": {
			"type": "multiList",
			"metaCode": "teacherMulti"
		}
	}
}

학생일 때도 똑같이 설정해주면 돼요.

{
	"#left": "tmpDocument.userDoc.userStatus",
	"#right": "student"
}
{
	"custom": {
		"action": {
			"type": "multiList",
			"metaCode": "studentMulti"
		}
	}
}

플로우 옵션의 커스텀 리턴에 아래처럼 작성해요.

저장 후 실행하면 학생이면 학생 게시판, 선생님이면 선생님 게시판으로 이동해요.

결제 여부에 따라서 미 결제 상태라면 결제창으로 이동하고 결제를 했다면 컨텐츠로 이동하는 식 등, 많은 부분에서 커스텀 리턴을 활용해 보세요.

23.11.09 Jipang

Generate Custom Return Output

This function enables the operation to produce a custom return output.

(This involves using the customReturn value without the need for a separate event flow meta.)

2023.08.11 Song

Last updated