@Override public Observable<ResourceResponse<Database>> createDatabase(Database database, RequestOptions options) { return Observable.defer(() -> { try { if (database == null) { throw new IllegalArgumentException("Database"); } logger.debug("Creating a Database. id: [{}]", database.getId()); validateResource(database); Map<String, String> requestHeaders = this.getRequestHeaders(options); RxDocumentServiceRequest request = RxDocumentServiceRequest.create(OperationType.Create, ResourceType.Database, Paths.DATABASES_ROOT, database, requestHeaders); return this.doCreate(request).map(response -> toResourceResponse(response, Database.class)); } catch (Exception e) { logger.debug("Failure in creating a database. due to [{}]", e.getMessage(), e); return Observable.error(e); } }); }
/** * Creates a database. * * @param database the database. * @param options the request options. * @return the resource response with the created database. * @throws DocumentClientException the document client exception. */ public ResourceResponse<Database> createDatabase(Database database, RequestOptions options) throws DocumentClientException { if (database == null) { throw new IllegalArgumentException("Database"); } logger.debug("Creating a Database. id: [{}]", database.getId()); DocumentClient.validateResource(database); Map<String, String> requestHeaders = getRequestHeaders(options); DocumentServiceRequest request = DocumentServiceRequest.create(OperationType.Create, ResourceType.Database, Paths.DATABASES_ROOT, database, requestHeaders); return new ResourceResponse<Database>(this.doCreate(request), Database.class); }