Documentation ¶
Index ¶
- Constants
- Variables
- func AddGroup(db *sql.DB, s *Group) error
- func AddReview(db *sql.DB, r *Review) error
- func AddShow(db *sql.DB, s *Show) error
- func AddSite(db *sql.DB) error
- func AddTask(db *sql.DB, t *Task) error
- func AddThumbnail(show, shot, thumbf string) error
- func AddUnit(db *sql.DB, s *Unit) error
- func AddUser(db *sql.DB, id, pw string) error
- func AddVersion(db *sql.DB, v *Version) error
- func DB() (*sql.DB, error)
- func DeleteGroup(db *sql.DB, show, grp string) error
- func DeleteShow(db *sql.DB, show string) error
- func DeleteSite(db *sql.DB) error
- func DeleteTask(db *sql.DB, show, grp, unit, task string) error
- func DeleteUnit(db *sql.DB, show, grp, unit string) error
- func DeleteUser(db *sql.DB, id string) error
- func DeleteVersion(db *sql.DB, show, grp, unit, task, ver string) error
- func InitDB(addr, ca, cert, key string) (*sql.DB, error)
- func JoinGroupID(show, grp string) string
- func JoinTaskID(show, grp, unit, task string) string
- func JoinUnitID(show, grp, unit string) string
- func JoinVersionID(show, grp, unit, task, ver string) string
- func SiteMustNotHaveTask(db *sql.DB, task string) error
- func SplitGroupID(id string) (string, string, error)
- func SplitTaskID(id string) (string, string, string, string, error)
- func SplitUnitID(id string) (string, string, string, error)
- func SplitVersionID(id string) (string, string, string, string, string, error)
- func UpdateGroup(db *sql.DB, s *Group) error
- func UpdateShow(db *sql.DB, s *Show) error
- func UpdateSite(db *sql.DB, s *Site) error
- func UpdateTask(db *sql.DB, t *Task) error
- func UpdateUnit(db *sql.DB, s *Unit) error
- func UpdateUser(db *sql.DB, id string, u *User) error
- func UpdateUserConfig(db *sql.DB, id string, u *UserConfig) error
- func UpdateUserPassword(db *sql.DB, id, pw string) error
- func UpdateVersion(db *sql.DB, v *Version) error
- func UserPasswordMatch(db *sql.DB, id, pw string) (bool, error)
- type APIResponse
- type AuthError
- type BadRequestError
- type DBStringMap
- type Group
- type NotFoundError
- type Review
- type Show
- type ShowStatus
- type Site
- type Status
- type Task
- type Unit
- type User
- type UserConfig
- type Version
Constants ¶
const ( ShowWaiting = ShowStatus("") ShowPreProduction = ShowStatus("pre") ShowProduction = ShowStatus("prod") ShowPostProduction = ShowStatus("post") ShowDone = ShowStatus("done") ShowHold = ShowStatus("hold") )
const ( StatusOmit = Status("omit") StatusHold = Status("hold") StatusInProgress = Status("in-progress") StatusNeedReview = Status("need-review") StatusRetake = Status("retake") StatusApproved = Status("approved") StatusDone = Status("done") )
각 항목들은 여기에 선언되어있는 상태중 일부만 사용한다.
Variables ¶
var AllReviewStatus = []Status{ StatusRetake, StatusApproved, }
var AllShowStatus = []ShowStatus{ ShowWaiting, ShowPreProduction, ShowProduction, ShowPostProduction, ShowDone, ShowHold, }
var AllStatus = []Status{ StatusOmit, StatusHold, StatusInProgress, StatusNeedReview, StatusRetake, StatusApproved, StatusDone, }
var AllTaskStatus = []Status{ StatusHold, StatusInProgress, StatusDone, }
var AllUnitStatus = []Status{ StatusOmit, StatusHold, StatusInProgress, StatusDone, }
var CreateTableIfNotExistsGroupsStmt = `` /* 334-byte string literal not displayed */
CreateTableIfNotExistGroupsStmt는 DB에 groups 테이블을 생성하는 sql 구문이다. 테이블은 타입보다 많은 정보를 담고 있을수도 있다.
var CreateTableIfNotExistsReviewsStmt = `` /* 657-byte string literal not displayed */
CreateTableIfNotExistReviewsStmt는 DB에 reviews 테이블을 생성하는 sql 구문이다. 테이블은 타입보다 많은 정보를 담고 있을수도 있다.
var CreateTableIfNotExistsShowsStmt = `` /* 400-byte string literal not displayed */
CreateTableIfNotExistShowsStmt는 DB에 shows 테이블을 생성하는 sql 구문이다. 테이블은 타입보다 많은 정보를 담고 있을수도 있다.
var CreateTableIfNotExistsSitesStmt = `` /* 386-byte string literal not displayed */
var CreateTableIfNotExistsTasksStmt = `` /* 673-byte string literal not displayed */
CreateTableIfNotExistShowsStmt는 DB에 tasks 테이블을 생성하는 sql 구문이다. 테이블은 타입보다 많은 정보를 담고 있을수도 있다.
var CreateTableIfNotExistsUnitsStmt = `` /* 679-byte string literal not displayed */
CreateTableIfNotExistUnitsStmt는 DB에 units 테이블을 생성하는 sql 구문이다. 테이블은 타입보다 많은 정보를 담고 있을수도 있다.
var CreateTableIfNotExistsUsersStmt = `` /* 396-byte string literal not displayed */
var CreateTableIfNotExistsVersionsStmt = `` /* 659-byte string literal not displayed */
CreateTableIfNotExistShowsStmt는 DB에 versions 테이블을 생성하는 sql 구문이다. 테이블은 타입보다 많은 정보를 담고 있을수도 있다.
var DefaultSite = &Site{ Tasks: []string{ "mod", "rig", "tex", "motion", "match", "ani", "fx", "lit", "matte", "comp", }, DefaultShotTasks: []string{ "comp", }, DefaultAssetTasks: []string{ "mod", "rig", "tex", }, }
DefaultSite는 기본적으로 제공되는 사이트이다.
Functions ¶
func AddThumbnail ¶
AddThumbnail은 특정 샷의 썸네일을 등록한다. 썸네일은 roi안에 파일로 저장된다.
func AddVersion ¶
AddVersion은 db의 특정 프로젝트, 특정 샷에 태스크를 추가한다.
func DeleteGroup ¶
DeleteGroup은 해당 그룹과 그 하위의 모든 데이터를 db에서 지운다. 만일 처리 중간에 에러가 나면 아무 데이터도 지우지 않고 에러를 반환한다.
func DeleteShow ¶
DeleteShow는 해당 쇼와 그 하위의 모든 데이터를 db에서 지운다. 만일 처리 중간에 에러가 나면 아무 데이터도 지우지 않고 에러를 반환한다.
func DeleteSite ¶
func DeleteTask ¶
DeleteTask는 해당 태스크와 그 하위의 모든 데이터를 db에서 지운다. 만일 처리 중간에 에러가 나면 아무 데이터도 지우지 않고 에러를 반환한다.
func DeleteUnit ¶
DeleteUnit은 해당 샷과 그 하위의 모든 데이터를 db에서 지운다. 만일 처리 중간에 에러가 나면 아무 데이터도 지우지 않고 에러를 반환한다.
func DeleteUser ¶
DeleteUser는 해당 id의 사용자를 지운다. 만일 해당 아이디의 사용자가 없다면 에러를 낸다.
func DeleteVersion ¶
DeleteVersion은 해당 버전과 그 하위의 모든 데이터를 db에서 지운다. 만일 처리 중간에 에러가 나면 아무 데이터도 지우지 않고 에러를 반환한다.
func InitDB ¶
InitDB는 로이 DB 및 DB유저를 생성한고 생성된 DB를 반환한다. 여러번 실행해도 문제되지 않는다. 실패하면 진행된 프로세스를 취소하고 에러를 반환한다.
func JoinGroupID ¶
func JoinTaskID ¶
func JoinUnitID ¶
func JoinVersionID ¶
func SiteMustNotHaveTask ¶
SiteMustNotHaveTask는 사이트 내의 샷에 해당 태스크가 하나라도 있으면 에러를 반환한다.
func SplitGroupID ¶
SplitGroupID는 받아들인 샷 아이디를 쇼, 샷으로 분리해서 반환한다. 만일 샷 아이디가 유효하지 않다면 에러를 반환한다.
func SplitTaskID ¶
SplitTaskID는 받아들인 샷 아이디를 쇼, 카테고리, 샷, 태스크로 분리해서 반환한다. 만일 샷 아이디가 유효하지 않다면 에러를 반환한다.
func SplitUnitID ¶
SplitUnitID는 받아들인 샷 아이디를 쇼, 샷으로 분리해서 반환한다. 만일 샷 아이디가 유효하지 않다면 에러를 반환한다.
func SplitVersionID ¶
SplitVersionID는 받아들인 버전 아이디를 쇼, 카테고리, 유닛, 태스크, 버전으로 분리해서 반환한다. 만일 버전 아이디가 유효하지 않다면 에러를 반환한다.
func UpdateUser ¶
UpdateUser는 db에 비밀번호를 제외한 유저 필드를 업데이트 한다. 이 함수를 호출하기 전 해당 유저가 존재하는지를 사용자가 검사해야한다.
func UpdateUserConfig ¶
func UpdateUserConfig(db *sql.DB, id string, u *UserConfig) error
UpdateUserConfig는 유저의 설정 값들을 업데이트 한다.
func UpdateUserPassword ¶
UpdateUserPassword는 db에 저장된 사용자 패스워드를 수정한다.
func UpdateVersion ¶
UpdateVersion은 db의 특정 태스크를 업데이트 한다.
Types ¶
type APIResponse ¶
type APIResponse struct { Msg interface{} `json:"msg"` Err string `json:"err"` }
APIResponse는 /api/ 하위 사이트로 사용자가 질의했을 때 json 응답을 위해 사용한다.
type AuthError ¶
type AuthError struct {
// contains filtered or unexported fields
}
AuthError는 특정 사용자가 허락되지 않은 행동을 요청했음을 의미하는 에러이다.
type BadRequestError ¶
type BadRequestError struct {
// contains filtered or unexported fields
}
BadRequestError는 로이의 함수를 호출했지만 그와 관련된 정보가 잘못되었음을 의미하는 에러이다.
func BadRequest ¶
func BadRequest(msg string, vals ...interface{}) BadRequestError
BadRequest는 BadRequestError를 반환한다.
func (BadRequestError) Error ¶
func (e BadRequestError) Error() string
func (BadRequestError) Unwrap ¶
func (e BadRequestError) Unwrap() error
type DBStringMap ¶
DBStringMap은 db에 저장될 때 문자열로 변경되는 맵이다. 키와 값이 모두 문자열이다.
Value와 Scan 메소드의 리시버가 하나는 값, 하나는 포인터로 다른 것이 이상해 보이겠지만 이렇게 해야지만 정상 작동하였다.
func (*DBStringMap) Scan ¶
func (m *DBStringMap) Scan(src interface{}) error
Scan은 db의 문자열 값을 맵으로 가져온다.
type Group ¶
type Group struct { Show string `db:"show"` Group string `db:"grp"` // group이 sql 구문이기 때문에 줄여서 씀. DefaultTasks []string `db:"default_tasks"` Notes string `db:"notes"` // Attrs는 커스텀 속성으로 db에는 여러줄의 문자열로 저장된다. 각 줄은 키: 값의 쌍이다. Attrs DBStringMap `db:"attrs"` }
type NotFoundError ¶
type NotFoundError struct {
// contains filtered or unexported fields
}
NotFoundError는 로이에서 특정 항목을 검색했지만 해당 항목이 없음을 의미하는 에러이다.
func NotFound ¶
func NotFound(msg string, vals ...interface{}) NotFoundError
NotFound는 NotFoundError를 반환한다.
func (NotFoundError) Error ¶
func (e NotFoundError) Error() string
func (NotFoundError) Unwrap ¶
func (e NotFoundError) Unwrap() error
type Review ¶
type Review struct { Show string `db:"show"` Group string `db:"grp"` // group이 sql 구문이기 때문에 줄여서 씀. Unit string `db:"unit"` Task string `db:"task"` Version string `db:"version"` Created time.Time `db:"created"` // 작성 시간; 항목 생성시 자동으로 입력된다. Reviewer string `db:"reviewer"` // 리뷰 한 사람의 아이디 Messenger string `db:"messenger"` // 메시지를 작성한 사람의 아이디 Msg string `db:"msg"` // 리뷰 내용 Status Status `db:"status"` // 이 상태로 변경되었음 }
Review는 버전의 상태를 변경하거나 수정을 위한 메시지를 남긴다.
type Show ¶
type Show struct { // 쇼 아이디. 로이 내에서 고유해야 한다. Show string `db:"show"` Status string `db:"status"` Supervisor string `db:"supervisor"` CGSupervisor string `db:"cg_supervisor"` PD string `db:"pd"` Managers []string `db:"managers"` DueDate time.Time `db:"due_date"` Tags []string `db:"tags"` Notes string `db:"notes"` // Attrs는 커스텀 속성으로 db에는 여러줄의 문자열로 저장된다. 각 줄은 키: 값의 쌍이다. Attrs DBStringMap `db:"attrs"` }
type ShowStatus ¶
type ShowStatus string
func (ShowStatus) UIString ¶
func (s ShowStatus) UIString() string
UIString은 UI안에서 사용하는 현지화된 문자열이다. 할일: 한국어 외의 문자열 지원
type Site ¶
type Site struct { // 현재로서는 빈 이름의 하나의 사이트만 존재한다. // 추후 여러 사이트로 확장할것인지 고민중이다. Site string `db:"site"` VFXSupervisors []string `db:"vfx_supervisors"` VFXProducers []string `db:"vfx_producers"` CGSupervisors []string `db:"cg_supervisors"` ProjectManagers []string `db:"project_managers"` // 샷에 생성할 수 있는 태스크 Tasks []string `db:"tasks"` // 샷이 생성될 때 기본적으로 생기는 태스크 DefaultShotTasks []string `db:"default_shot_tasks"` DefaultAssetTasks []string `db:"default_asset_tasks"` // Leads는 task:name 형식이고 한 파트에 여러명이 등록될 수 있다. // 이 때 [... rnd:kybin rnd:kaycho ...] 처럼 등록한다. // 형식이 맞지 않거나 Tasks에 없는 태스크명을 쓰면 에러를 낸다. Leads []string `db:"leads"` Notes string `db:"notes"` // Attrs는 커스텀 속성으로 db에는 여러줄의 문자열로 저장된다. 각 줄은 키: 값의 쌍이다. Attrs DBStringMap `db:"attrs"` }
Site는 현재 스튜디오를 뜻한다.
type Task ¶
type Task struct { // 관련 아이디 Show string `db:"show"` Group string `db:"grp"` // group이 sql 구문이기 때문에 줄여서 씀. Unit string `db:"unit"` // 샷 또는 애셋 유닛 Task string `db:"task"` // 파트 또는 파트_요소로 구성된다. 예) fx, fx_fire Status Status `db:"status"` DueDate time.Time `db:"due_date"` Assignee string `db:"assignee"` PublishVersion string `db:"publish_version"` ApprovedVersion string `db:"approved_version"` ReviewVersion string `db:"review_version"` WorkingVersion string `db:"working_version"` }
func TasksNeedReview ¶
TasksNeedReview는 db에서 리뷰 대기중이거나 마감일이 있는 태스크를 불러온다.
type Unit ¶
type Unit struct { Show string `db:"show"` Group string `db:"grp"` // group이 sql 구문이기 때문에 줄여서 씀. Unit string `db:"unit"` // 샷 정보 Status Status `db:"status"` EditOrder int `db:"edit_order"` Description string `db:"description"` CGDescription string `db:"cg_description"` Tags []string `db:"tags"` // Assets는 샷이 필요로 하는 애셋 이름 리스트이다. // 현재는 애셋이 같은 쇼 안에 존재할 때만 처리가 가능하다. // 여기에 등록된 애셋은 존재해야만 하며, // 애셋이 삭제되기 전 우선 모든 샷의 애셋 태그에서 지워져야 한다. Assets []string `db:"assets"` // Tasks는 샷에 작업중인 어떤 태스크가 있는지를 나타낸다. // 웹 페이지에는 여기에 포함된 태스크만 이 순서대로 보여져야 한다. // // 참고: 여기에 포함되어 있다면 db내에 해당 태스크가 존재해야 한다. // 반대로 여기에 포함되어 있지 않지만 db내에는 존재하는 태스크가 있을 수 있다. // 그 태스크는 (예를 들어 태스크가 Omit 되는 등의 이유로) 숨겨진 태스크이며, // 직접 지우지 않는 한 db에 보관된다. Tasks []string `db:"tasks"` StartDate time.Time `db:"start_date"` EndDate time.Time `db:"end_date"` DueDate time.Time `db:"due_date"` // Attrs는 커스텀 속성으로 db에는 여러줄의 문자열로 저장된다. 각 줄은 키: 값의 쌍이다. Attrs DBStringMap `db:"attrs"` }
type User ¶
type User struct { ID string `db:"id"` KorName string `db:"kor_name"` Name string `db:"name"` Team string `db:"team"` Role string `db:"role"` Email string `db:"email"` PhoneNumber string `db:"phone_number"` EntryDate string `db:"entry_date"` }
User는 일반적인 사용자 정보이다.
type UserConfig ¶
type UserConfig struct {
CurrentShow string `db:"current_show"`
}
func GetUserConfig ¶
func GetUserConfig(db *sql.DB, id string) (*UserConfig, error)
UpdateUserConfig는 유저의 설정 값들을 받아온다.
type Version ¶
type Version struct { Show string `db:"show"` Group string `db:"grp"` // group이 sql 구문이기 때문에 줄여서 씀. Unit string `db:"unit"` Task string `db:"task"` Version string `db:"version"` // 버전명 Owner string `db:"owner"` // 버전 소유자 OutputFiles []string `db:"output_files"` // 결과물 경로 Images []string `db:"images"` // 결과물을 확인할 수 있는 이미지 Mov string `db:"mov"` // 결과물을 영상으로 볼 수 있는 경로 WorkFile string `db:"work_file"` // 이 결과물을 만든 작업 파일 }
Version은 특정 태스크의 하나의 버전이다.
func GetVersion ¶
GetVersion은 db에서 하나의 버전을 찾는다. 해당 버전이 없다면 nil과 NotFound 에러를 반환한다.
func TaskVersions ¶
TaskVersions는 db에서 특정 태스크의 버전 전체를 검색해 반환한다.