mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-11-03 18:53:17 -05:00 
			
		
		
		
	* Fix or comment several ts-ignores * Fix typing related to BaseOverflowButton * Remove unused functionality of useCookbooks, fix usage bug * Fix more typing, add some comments * Only allow ts-ignore if it has a comment
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { BaseCRUDAPI } from "../_base";
 | 
						|
import { UserOut } from "~/types/api-types/user";
 | 
						|
const prefix = "/api";
 | 
						|
 | 
						|
export interface Token {
 | 
						|
  name: string;
 | 
						|
  id: number;
 | 
						|
  createdAt: Date;
 | 
						|
}
 | 
						|
 | 
						|
export interface Preferences {
 | 
						|
  privateGroup: boolean;
 | 
						|
  firstDayOfWeek: number;
 | 
						|
  recipePublic: boolean;
 | 
						|
  recipeShowNutrition: boolean;
 | 
						|
  recipeShowAssets: boolean;
 | 
						|
  recipeLandscapeView: boolean;
 | 
						|
  recipeDisableComments: boolean;
 | 
						|
  recipeDisableAmount: boolean;
 | 
						|
  groupId: number;
 | 
						|
  id: number;
 | 
						|
}
 | 
						|
 | 
						|
export interface GroupCreate {
 | 
						|
  name: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface GroupRead extends GroupCreate {
 | 
						|
  id: number;
 | 
						|
  categories: any[];
 | 
						|
  webhooks: any[];
 | 
						|
  users: UserOut[];
 | 
						|
  preferences: Preferences;
 | 
						|
}
 | 
						|
 | 
						|
export interface AdminGroupUpdate {
 | 
						|
  name: string;
 | 
						|
  id: number;
 | 
						|
  preferences: Preferences;
 | 
						|
}
 | 
						|
 | 
						|
const routes = {
 | 
						|
  adminUsers: `${prefix}/admin/groups`,
 | 
						|
  adminUsersId: (id: number) => `${prefix}/admin/groups/${id}`,
 | 
						|
};
 | 
						|
 | 
						|
export class AdminGroupsApi extends BaseCRUDAPI<GroupRead, GroupCreate> {
 | 
						|
  baseRoute: string = routes.adminUsers;
 | 
						|
  itemRoute = routes.adminUsersId;
 | 
						|
 | 
						|
  async updateOne(id: number, payload: AdminGroupUpdate) {
 | 
						|
    // TODO: This should probably be a patch request, which isn't offered by the API currently
 | 
						|
    return await this.requests.put<GroupRead, AdminGroupUpdate>(this.itemRoute(id), payload);
 | 
						|
  }
 | 
						|
}
 |