All files / src/api/cloud-volumes active-directory.js

100% Statements 6/6
100% Branches 0/0
100% Functions 6/6
100% Lines 6/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80                                                                                          4x                               3x   1x       1x       1x       1x        
// @flow
 
import { type Caller } from '.';
 
/**
 * A description of an  IP range.
 */
export type ActiveDirectory = {
  id: string,
  domain: string,
  dns: string,
  netbios: string,
  organizationalUnit: string,
  password: string,
  region: string,
  status: string,
  username: string,
  created: Date,
  updated: Date,
};
 
/**
 * Parameters passed while creating active directory data.
 */
type CreateActiveDirectoryValues = any;
 
/**
 * Parameters passed while updating active directory data.
 */
type UpdateActiveDirectoryValues = any;
 
/**
 * Show your  IP ranges.
 */
export interface ActiveDirectoryAPI {
  list(): Promise<ActiveDirectory[]>;
  create(values: CreateActiveDirectoryValues): Promise<ActiveDirectory>;
  update(
    id: string,
    values: UpdateActiveDirectoryValues,
  ): Promise<ActiveDirectory>;
  delete(id: string): Promise<any>;
}
 
function into(item: any): ActiveDirectory {
  return {
    id: item.UUID,
    domain: item.domain,
    dns: item.DNS,
    netbios: item.netBIOS,
    organizationalUnit: item.organizationalUnit,
    password: item.password,
    region: item.region,
    status: item.status,
    username: item.username,
    created: new Date(item.createdAt),
    updated: new Date(item.updatedAt),
  };
}
 
export default function activeDirectory(call: Caller): ActiveDirectoryAPI {
  return {
    async list() {
      return (await call('GET', 'Storage/ActiveDirectory')).map(into);
    },
 
    async create(values) {
      return into(await call('POST', 'Storage/ActiveDirectory', values));
    },
 
    async update(id, values) {
      return into(await call('PUT', `Storage/ActiveDirectory/${id}`, values));
    },
 
    delete(id) {
      return call('DELETE', `Storage/ActiveDirectory/${id}`);
    },
  };
}