示例#1
0
func (r *GormWorkItemLinkTypeRepository) listLinkTypes(ctx context.Context, fetchFunc fetchLinkTypesFunc) (*app.WorkItemLinkTypeList, error) {
	rows, err := fetchFunc()
	if err != nil {
		return nil, errs.WithStack(err)
	}
	res := app.WorkItemLinkTypeList{}
	res.Data = make([]*app.WorkItemLinkTypeData, len(rows))
	for index, value := range rows {
		lt := ConvertLinkTypeFromModel(value)
		res.Data[index] = lt.Data
	}
	// TODO: When adding pagination, this must not be len(rows) but
	// the overall total number of elements from all pages.
	res.Meta = &app.WorkItemLinkTypeListMeta{
		TotalCount: len(rows),
	}
	return &res, nil
}
示例#2
0
// List returns all work item link types
// TODO: Handle pagination
func (r *GormWorkItemLinkTypeRepository) List(ctx context.Context) (*app.WorkItemLinkTypeList, error) {
	// We don't have any where clause or paging at the moment.
	var rows []WorkItemLinkType
	db := r.db.Find(&rows)
	if db.Error != nil {
		return nil, db.Error
	}
	res := app.WorkItemLinkTypeList{}
	res.Data = make([]*app.WorkItemLinkTypeData, len(rows))
	for index, value := range rows {
		linkType := ConvertLinkTypeFromModel(value)
		res.Data[index] = linkType.Data
	}
	// TODO: When adding pagination, this must not be len(rows) but
	// the overall total number of elements from all pages.
	res.Meta = &app.WorkItemLinkTypeListMeta{
		TotalCount: len(rows),
	}
	return &res, nil
}